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 по дате отправления: