Re: Is RecoveryConflictInterrupt() entirely safe in a signal handler?

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Noah Misch <noah(at)leadboat(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Is RecoveryConflictInterrupt() entirely safe in a signal handler?
Date: 2023-01-05 00:43:21
Message-ID: CA+hUKGKT2FDTmTXWtdwZ5Ps+Xg+Ewf+y_-bZvf_BSinqgxCDYA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jan 5, 2023 at 11:55 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > Hm. Seems confusing for this to continue being called rcancelrequested() and
> > to be called via if(CANCEL_REQUESTED()), if we're not even documenting that
> > it's intended to be usable that way?
>
> Yeah. I'm not very happy with this line of development at all,
> because I think we are painting ourselves into a corner by not allowing
> code to detect whether a cancel is pending without having it happen
> immediately. (That is, I do not believe that backend/regex/ is the
> only code that will ever wish for that.) But if that is the direction
> we're going to go in, we should probably revise these APIs to make them
> less odd. I'm not sure why we'd keep the REG_CANCEL error code at all.

Ah, OK. I had the impression from the way the code is laid out with a
wall between "PostgreSQL" bits and "vendored library" bits that we
might have some reason to want to keep that callback interface the
same (ie someone else is using this code and we want to stay in
sync?), but your reactions are a clue that maybe I imagined a
requirement that doesn't exist.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2023-01-05 00:49:06 Re: wake up logical workers after ALTER SUBSCRIPTION
Previous Message Andres Freund 2023-01-05 00:31:49 Re: Is RecoveryConflictInterrupt() entirely safe in a signal handler?