On Sun, May 25, 2025 at 1:56 AM Dmitry Dolgov <9erthali...@gmail.com> wrote:
> I've been rebasing the patch for online resizing of shared memory, and
> noticed something strange about IoWorkerMain: although it sets the
> handler SignalHandlerForConfigReload, it doesn't look like it acts upon
> ConfigReloadPending. From what I see it happens because it only does
> CHECK_FOR_INTERRUPTS in the main worker loop, which doesn't handle
> ConfigReloadPending.
>
> In the context of shared memory resizing patch it means I/O workers are
> not receiving the new value of NBuffers and crash. Adding something like
> pgaio_worker_process_interrupts to deal with ConfigReloadPending at the
> beginning of the main worker loop seems to solve the issue. But I
> haven't found any discussion about config reload in I/O workers, was
> this omission intentional?

You're right, and I noticed the same thing and fixed it in
0004-aio-Adjust-IO-worker-pool-size-automatically.patch in
https://www.postgresql.org/message-id/flat/CA%2BhUKG%2Bm4xV0LMoH2c%3DoRAdEXuCnh%2BtGBTWa7uFeFMGgTLAw%2BQ%40mail.gmail.com.
(That patch also introduces a reason for the workers to care about
config reload.). Not sure how that happened, ie the history of
adding/removing reasons to worry about reload, I don't remember, this
code stewed for a long time, but it's at least inconsistent...  We
could fix it as you suggested or as shown in that patch.


Reply via email to