Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization. - Mailing list pgsql-hackers

From Chao Li
Subject Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization.
Date
Msg-id 512989C2-431E-4AE6-86B2-ED127C3DC439@gmail.com
Whole thread
In response to Fix race condition in XLogLogicalInfo and ProcSignal initialization.  (Masahiko Sawada <sawada.mshk@gmail.com>)
Responses Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization.
List pgsql-hackers

> 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/







pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Fix the error hint message and test for reset_shared with iso-8859-1 stats type
Next
From: Ajin Cherian
Date:
Subject: Re: Fix race condition in pg_get_publication_tables with concurrent DROP TABLE