Re: Weird failure with latches in curculio on v15
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Nathan Bossart <nathandbossart@gmail.com>, Andres Freund <andres@anarazel.de>, Thomas Munro <thomas.munro@gmail.com>, Fujii Masao <fujii@postgresql.org>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-02-02T04:24:15Z
Lists: pgsql-hackers
On Wed, Feb 01, 2023 at 09:34:44PM -0500, Tom Lane wrote: > Michael Paquier <michael@paquier.xyz> writes: >> Hmm. Isn't that something that we should also document in startup.c >> where both routines are defined? If we begin to use >> PreRestoreCommand() and PostRestoreCommand() in more code paths in the >> future, that could be again an issue. > > I was vaguely wondering about removing both of those functions > in favor of an integrated function that does a system() call > with those things before and after it. It seems to me that this is pretty much the same as storing in_restore_command in shell_restore.c, and that for recovery modules this comes down to the addition of an extra callback called in startup.c to check if the flag is up or not. Now the patch is doing things the opposite way: like on HEAD, store the flag in startup.c but switch it at will with the routines in startup.c. I find the approach of the patch a bit more intuitive, TBH, as that makes the interface simpler for other recovery modules that may want to switch the flag back-and-forth, and I suspect that there may be cases in recovery modules where we'd still want to switch the flag, but not necessarily link it to system(). -- Michael
Commits
-
Avoid calling proc_exit() in processes forked by system().
- d0e7f95b4845 11.22 landed
- e2e16904224a 12.17 landed
- ac1dfc303d0e 13.13 landed
- 54fc9dca5b10 14.10 landed
- c9265ae80b6a 15.5 landed
- ee06199fcb0a 16.1 landed
- 97550c071197 17.0 landed
-
Move extra code out of the Pre/PostRestoreCommand() section.
- 882e522d6468 15.5 landed
- d1c56ad37b96 16.1 landed
- 8fb13dd6ab5b 17.0 landed
-
Revert refactoring of restore command code to shell_restore.c
- 2f6e15ac93c5 16.0 landed
-
Refactor code in charge of running shell-based recovery commands
- 9a740f81eb02 16.0 cited
-
Clean up inconsistent use of fflush().
- 7fed801135ba 16.0 cited
-
Report wait events for local shell commands like archive_command.
- 1b06d7bac901 15.0 cited