> On Apr 29, 2026, at 05:15, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>
> 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 think this is correct.
After moving InitializeProcessXLogLogicalInfo() out of BaseInit(), background worker processes (BackgroundWorkerMain)
willno longer hold a valid value of XLogLogicalInfo, but I guess that is fine as those processes don’t call
ProcSignalInit()anyway.
>
> I've attached the patch to fix this issue. Feedback is very welcome.
>
Just found a typo:
```
+ * These initialization intentionally happens afater initializing the
```
afater => after
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/