Re: Is RecoveryConflictInterrupt() entirely safe in a signal handler?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>, Andres Freund <andres@anarazel.de>, Noah Misch <noah@leadboat.com>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-08-05T01:39:24Z
Lists: pgsql-hackers
Attachments
- v7-0001-Fix-recovery-conflict-SIGUSR1-handling.patch (text/x-patch) patch v7-0001
Here is a rebase over 26669757, which introduced PROCSIG_RECOVERY_CONFLICT_LOGICALSLOT. I got a bit confused about why this new conflict reason didn't follow the usual ERROR->FATAL promotion rules and pinged Andres who provided: "Logical decoding slots are only acquired while performing logical decoding. During logical decoding no user controlled code is run. During [sub]transaction abort, the slot is released. Therefore user controlled code cannot intercept an error before the replication slot is released." That's included in a comment in the attached to explain the special treatment.
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