Re: Allow non-superuser to cancel superuser tasks. - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Allow non-superuser to cancel superuser tasks.
Date
Msg-id ZnT7JUS4_-dXefNY@paquier.xyz
Whole thread Raw
In response to Re: Allow non-superuser to cancel superuser tasks.  ("Andrey M. Borodin" <x4mmm@yandex-team.ru>)
Responses Re: Allow non-superuser to cancel superuser tasks.
List 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

Attachment

pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: Re: ON ERROR in json_query and the like
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: Pluggable cumulative statistics