Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion?
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-18T17:10:30Z
Lists: pgsql-hackers
On Thu, Mar 19, 2026 at 1:23 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Fujii Masao <masao.fujii@gmail.com> writes: > > I noticed that during standby promotion the startup process sends SIGUSR1 to > > the slotsync worker to make it exit. Is there a reason for using SIGUSR1? > > Would it make sense to send SIGTERM instead, so the worker can exit promptly > > even while waiting? > > One consideration here is that we expect all processes to receive > SIGTERM from init at the beginning of an operating system shutdown > sequence. Background workers should exit at that point only if their > services will not be needed during database shutdown. While it > sounds plausible that a slotsync worker should exit immediately, > I'm not quite sure if that's what we want. Currently, when the slotsync worker receives SIGUSR1 during promotion, it exits at the next interrupt check (i.e., in ProcessSlotSyncInterrupts()). There's no additional termination handling, so it seems the worker is expected to exit promptly once the startup process requests it. Given that, using SIGTERM to make the worker exit immediately seems OK to me... With the patch, on SIGTERM, the worker basically still exits at the next interrupt check. The difference is that if it's waiting for input from the primary (i.e., DoingCommandRead = true), it calls ProcessInterrupts() in the SIGTERM signal handler (die()) and exits immediately. Regards. -- Fujii Masao
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Update .abi-compliance-history for change to enum ProcSignalReason
- 29d8bd908560 17.10 landed
-
Fix ABI break by moving PROCSIG_SLOTSYNC_MESSAGE in ProcSignalReason
- 586f4266fb49 17.10 landed
- acf49bfede2a 18.4 landed
-
Fix slotsync worker blocking promotion when stuck in wait
- 15910b1c363f 17.10 landed
- 58c1188a3eaa 18.4 landed
- db93032a7cbd 19 (unreleased) landed
-
Add retry logic to pg_sync_replication_slots().
- 0d2d4a0ec3ec 19 (unreleased) cited
-
Enhance slot synchronization API to respect promotion signal.
- 1362bc33e025 19 (unreleased) cited