On Wed, Jun 11, 2025 at 5:26 PM Andrey Rudometov <unlimitedhik...@gmail.com> wrote: > > Good day, hackers. > > Reading through changes committed in master, I noticed that after > CleanupBackend/CleanupBackroundworker refactor background workers will fail to > start again after postgres' restart with restart_after_crash = on. > > The reason is CleanupBackend and HandleChildCrash not setting background > worker's > rw_pid to zero anymore, if backend, well, crashed and failed to call > shmem_exit > and mark PMChild slot as inactive via MarkPostmasterChildInactive. > > Suggested solution is to finish CleanupBackend's background worker related > logic > even after treating the child process as crashed. In earlier versions zeroing > of > pids happen in HandleChildCrash anyway, so there should be no harm in doing > the same actions here. > > For fast reproduction I used pg_prewarm extension, as it creates observable > bgworker > and is present in postgres tree, so tap test is easy to run.
Thanks for the report and patch! This same issue was also reported in thread [1], where there's ongoing discussion about how to address it. Regards, [1] https://postgr.es/m/tencent_e00a056b3953ee6440f0f40f80ec30427...@qq.com -- Fujii Masao