Re: Using WaitEventSet in the postmaster

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: Using WaitEventSet in the postmaster
Дата
Msg-id CA+hUKG+sCqnqxUq3KAyiVAqAfWVFr3HcKYXG1S5EbaNKOzZt4Q@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Using WaitEventSet in the postmaster  (Thomas Munro <thomas.munro@gmail.com>)
Ответы Re: Using WaitEventSet in the postmaster  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On Sat, Dec 3, 2022 at 10:41 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> Here's an iteration like that.  Still WIP grade.  It passes, but there
> must be something I don't understand about this computer program yet,
> because if I move the "if (pending_..." section up into the block
> where WL_LATCH_SET has arrived (instead of testing those variables
> every time through the loop), a couple of tests leave zombie
> (unreaped) processes behind, indicating that something funky happened
> to the state machine that I haven't yet grokked.  Will look more next
> week.

Duh.  The reason for that was the pre-existing special case for
PM_WAIT_DEAD_END, which used a sleep(100ms) loop to wait for children
to exit, which I needed to change to a latch wait.  Fixed in the next
iteration, attached.

The reason for the existing sleep-based approach was that we didn't
want to accept any more connections (or spin furiously because the
listen queue was non-empty).  So in this version I invented a way to
suppress socket events temporarily with WL_SOCKET_IGNORE, and then
reactivate them after crash reinit.

Still WIP, but I hope travelling in the right direction.

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Daniel Gustafsson
Дата:
Сообщение: Marking options deprecated in help output
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: doc: add missing "id" attributes to extension packaging page