Re: Allow non-superuser to cancel superuser tasks.
От | Andrey M. Borodin |
---|---|
Тема | Re: Allow non-superuser to cancel superuser tasks. |
Дата | |
Msg-id | 9AF5C938-515C-44E4-A5C2-BF0C829E11AA@yandex-team.ru обсуждение исходный текст |
Ответ на | Re: Allow non-superuser to cancel superuser tasks. (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: Allow non-superuser to cancel superuser tasks.
|
Список | pgsql-hackers |
> On 21 Jun 2024, at 09:01, Michael Paquier <michael@paquier.xyz> wrote: > > 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()`. Yes, i’ve tried to get similar error in other CV-sleeps and in injection points of normal backend - everything works justfine. The error is specific to just this test. >> 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? Thanks for the pointer, I’ll try this approach! Best regards, Andrey Borodin,
В списке pgsql-hackers по дате отправления: