Re: Is RecoveryConflictInterrupt() entirely safe in a signal handler?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Noah Misch <noah@leadboat.com>, Robert Haas <robertmhaas@gmail.com>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-01-05T00:21:54Z
Lists: pgsql-hackers
On Thu, Jan 5, 2023 at 12:33 PM Andres Freund <andres@anarazel.de> wrote: > What about using a version of errsave() that can save FATALs too? We could > have something roughly like the ProcessInterrupts() in the proposed patch that > is used from within rcancelrequested(). But instead of actually throwing the > error, we'd just remember the to-be-thrown-later error, that the next > "real" CFI would throw. Right, I contemplated variations on that theme. I'd be willing to code something like that to kick the tyres, but it seems like it would make back-patching more painful? We're trying to fix bugs here... Deciding to proceed with #6 (palloc) wouldn't mean we can't eventually also implement two phase/soft CFI() when we have a potential user, so I don't really get the painted-into-a-corner argument. However, it's all moot if the #6 isn't good enough on its own merits independent of other hypothetical future users (eg if the per regex_t MemoryContext overheads are considered too high and can't be tuned acceptably).
Commits
-
Fix recovery conflict SIGUSR1 handling.
- 0da096d78e1e 17.0 landed
-
Redesign interrupt/cancel API for regex engine.
- db4f21e4a34b 16.0 landed
-
Update contrib/trgm_regexp's memory management.
- 6db75edb2ecb 16.0 landed
-
Update tsearch regex memory management.
- 4f51429dd7f1 16.0 landed
-
Use MemoryContext API for regex memory management.
- bea3d7e3831f 16.0 landed