Fix race condition in XLogLogicalInfo and ProcSignal initialization.
Masahiko Sawada <sawada.mshk@gmail.com>
From: Masahiko Sawada <sawada.mshk@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-28T21:15:58Z
Lists: pgsql-hackers
Attachments
- 0001-Fix-race-condition-in-XLogLogicalInfo-and-ProcSignal.patch (text/x-patch) patch 0001
Hi all, I found a race condition issue between XLogLogicalInfo and ProcSignal initialization while reviewing another issue[1]. I'm starting a separate thread for the subject as it's not related to the issue reported on that thread. The issue is that child processes could miss the PROCSIGNAL_BARRIER_UPDATE_XLOG_LOGICAL_INFO signal during the initialization and end up in an inconsistent state because InitializeProcessXLogLogicalInfo() is called (in BaseInit()) before ProcSignalInit(). If the startup emits the signal to a process who is between two steps, the process would not reflect the latest XLogLogicalInfo state. I think we should move InitializeProcessXLogLogicalInfo() after ProcSignalInit() like we do so for InitLocalDataChecksumState(). I've attached the patch to fix this issue. Feedback is very welcome. Regards, [1] https://www.postgresql.org/message-id/CAD21AoBj%2BzKvgw_Q8gjr4YbKccW_uMe3OFQ5%2BKT246FHUuNXSQ%40mail.gmail.com -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix race condition in XLogLogicalInfo and ProcSignal initialization.
- b384cdb2745b 19 (unreleased) landed