Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization.

Поиск
Список
Период
Сортировка
От Chao Li
Тема Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization.
Дата
Msg-id 512989C2-431E-4AE6-86B2-ED127C3DC439@gmail.com
обсуждение
Ответ на Fix race condition in XLogLogicalInfo and ProcSignal initialization.  (Masahiko Sawada <sawada.mshk@gmail.com>)
Ответы Re: Fix race condition in XLogLogicalInfo and ProcSignal initialization.
Список 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 по дате отправления: