RESUME_INTERRUPTS();
+ /*
+ * Initialize the process-local logical info WAL logging state.
+ *
+ * This must be called after ProcSignalInit() so that the process can
+ * participate in procsignal-based barriers that update this state.
+ */
+ InitializeProcessXLogLogicalInfo();
+
/*
* Auxiliary processes don't run transactions, but they may need a
* resource owner anyway to manage buffer pins acquired outside
/* Initialize lock manager's local structs */
InitLockManagerAccess();
- /* Initialize logical info WAL logging state */
- InitializeProcessXLogLogicalInfo();
-
/*
* Initialize replication slots after pgstat. The exit hook might need to
* drop ephemeral slots, which in turn triggers stats reporting.
before_shmem_exit(ShutdownXLOG, 0);
}
+ /*
+ * Initialize the process-local logical info WAL logging state.
+ *
+ * This must be called after ProcSignalInit() so that the process can
+ * participate in procsignal-based barriers that update this state.
+ * Furthermore, in !IsUnderPostmaster cases, this must occur after
+ * StartupXLOG() where the shared state is first established.
+ */
+ InitializeProcessXLogLogicalInfo();
+
/*
* Initialize the relation cache and the system catalog caches. Note that
* no catalog access happens here; we only set up the hashtable structure.