Re: Allow non-superuser to cancel superuser tasks.

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Allow non-superuser to cancel superuser tasks.
Дата
Msg-id ZnT7JUS4_-dXefNY@paquier.xyz
обсуждение исходный текст
Ответ на Re: Allow non-superuser to cancel superuser tasks.  ("Andrey M. Borodin" <x4mmm@yandex-team.ru>)
Ответы Re: Allow non-superuser to cancel superuser tasks.
Список pgsql-hackers
On Fri, Jun 14, 2024 at 12:06:36PM +0500, Andrey M. Borodin wrote:
> I’ve tried to dig into the test.
> The problem is CV is allocated in
>
> inj_state = GetNamedDSMSegment("injection_points”,
>
> which seems to be destroyed in
>
> shmem_exit() calling dsm_backend_shutdown()
>
> This happens before we broadcast that sleep is over.
> I think this might happen with any wait on injection point if it is
> pg_terminate_backend()ed.

Except if I am missing something, this is not a problem for a normal
backend, for example with one using a `SELECT injection_points_run()`.

> Is there way to wake up from CV sleep before processing actual termination?

I am honestly not sure if this is worth complicating the sigjmp path
of the autovacuum worker just for the sake of this test.  It seems to
me that it would be simple enough to move the injection point
autovacuum-worker-start within the transaction block a few lines down
in do_autovacuum(), no?
--
Michael

Вложения

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

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: ON ERROR in json_query and the like
Следующее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: Pluggable cumulative statistics