Re: Can a child process detect postmaster death when in pg_usleep?
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Thomas Munro <thomas.munro@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-07-02T06:33:07Z
Lists: pgsql-hackers
On Fri, Jul 2, 2021 at 9:53 AM Michael Paquier <michael@paquier.xyz> wrote: > > On Mon, Jun 28, 2021 at 08:21:06PM +0530, Bharath Rupireddy wrote: > > The recoveryWakeupLatch and procLatch/MyLatch are being used for WAL > > replay and recovery conflict, respectively. Actually, I was earlier > > using procLatch/MyLatch, but came across the commit 00f690a23 which > > says that the two latches are reserved for specific purposes. I'm not > > quite sure which one to use when do_pg_stop_backup is called by the > > startup process. Any thoughts? > > Could you explain why you think dp_pg_stop_backup() can be called by > the startup process? AFAIK, this code path applies to two categories > of sessions: > - backend sessions, with the SQL functions calling this routine. > - WAL senders, aka anything that connects with replication=1 able to > use the BASE_BACKUP with the replication protocol. My bad. I was talking about the cases when do_pg_stop_backup is called while the server is in recovery mode i.e. backup_started_in_recovery = RecoveryInProgress(); evaluates to true. I'm not sure in these cases whether we should replace pg_usleep with WaitLatch. If yes, whether we should use procLatch/MyLatch or recoveryWakeupLatch as they are currently serving different purposes. Regards, Bharath Rupireddy.
Commits
-
Use WaitLatch() instead of pg_usleep() at the end of backups
- 2aca19f2989a 15.0 landed
-
Use WaitLatch() instead of pg_usleep() at end-of-vacuum truncation
- 70685385d70f 15.0 landed
-
Use a WaitLatch for vacuum/autovacuum sleeping
- 4753ef37e0ed 14.0 cited
-
Revert "Get rid of the dedicated latch for signaling the startup process".
- 00f690a23993 14.0 cited