Re: windows CI failing PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED
От | Alexander Lakhin |
---|---|
Тема | Re: windows CI failing PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED |
Дата | |
Msg-id | 65ad5e5b-d5f5-d3da-10d0-3999b298feb4@gmail.com обсуждение исходный текст |
Ответ на | Re: windows CI failing PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: windows CI failing PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED
|
Список | pgsql-hackers |
12.03.2023 10:18, Thomas Munro wrote: > And again: > > TRAP: failed Assert("PMSignalState->PMChildFlags[slot] == > PM_CHILD_ASSIGNED"), File: "../src/backend/storage/ipc/pmsigna... > > https://cirrus-ci.com/task/6558324615806976 > https://api.cirrus-ci.com/v1/artifact/task/6558324615806976/testrun/build/testrun/pg_upgrade/002_pg_upgrade/log/002_pg_upgrade_old_node.log > https://api.cirrus-ci.com/v1/artifact/task/6558324615806976/crashlog/crashlog-postgres.exe_0974_2023-03-11_13-57-27-982.txt Here we have duplicate PIDs too: ... 2023-03-11 13:57:21.277 GMT [2152][client backend] [pg_regress/union][:0] LOG: disconnection: session time: 0:00:00.268 user=SYSTEM database=regression host=[local] ... 2023-03-11 13:57:22.320 GMT [4340][client backend] [pg_regress/join][8/947:0] LOG: statement: set enable_hashjoin to 0; TRAP: failed Assert("PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED"), File: "../src/backend/storage/ipc/pmsignal.c", Line: 329, PID: 2152 And I see the following code in postmaster.c: CleanupBackend(int pid, int exitstatus) /* child's exit status. */ { ... dlist_foreach_modify(iter, &BackendList) { Backend *bp = dlist_container(Backend, elem, iter.cur); if (bp->pid == pid) { if (!bp->dead_end) { if (!ReleasePostmasterChildSlot(bp->child_slot)) ... so if a backend with the same PID happened to start (but not reached InitProcess() yet), when CleanBackend() is called to clean after a just finished backend, the slot of the starting one will be released. I am yet to construct a reproduction of the case, but it seems to me that the race condition is not impossible here. Best regards, Alexander
В списке pgsql-hackers по дате отправления: