]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Enhance slot synchronization API to respect promotion signal.
authorAmit Kapila <akapila@postgresql.org>
Thu, 11 Dec 2025 03:49:28 +0000 (03:49 +0000)
committerFujii Masao <fujii@postgresql.org>
Wed, 8 Apr 2026 02:19:31 +0000 (11:19 +0900)
commit94efd308bcec9ecb45c2f1977c3c15bec383316e
treec3290c69bddd56a43b2d8f2ee8d97da76acb9e81
parent49f3cb453b9b86b771b0a15393893fb317e35572
Enhance slot synchronization API to respect promotion signal.

Previously, during a promotion, only the slot synchronization worker was
signaled to shut down. The backend executing slot synchronization via the
pg_sync_replication_slots() SQL function was not signaled, allowing it to
complete its synchronization cycle before exiting.

An upcoming patch improves pg_sync_replication_slots() to wait until
replication slots are fully persisted before finishing. This behaviour
requires the backend to exit promptly if a promotion occurs.

This patch ensures that, during promotion, a signal is also sent to the
backend running pg_sync_replication_slots(), allowing it to be interrupted
and exit immediately.

This change was originally committed to master only. However, backpatch
it to v17, where slot synchronization was introduced. Because it is required
for an upcoming bug fix addressing slotsync (including
pg_sync_replication_slots()) blocking promotion when stuck in a wait.

Author: Ajin Cherian <itsajin@gmail.com>
Reviewed-by: Shveta Malik <shveta.malik@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://postgr.es/m/CAFPTHDZAA%2BgWDntpa5ucqKKba41%3DtXmoXqN3q4rpjO9cdxgQrw%40mail.gmail.com
Backpatch-through: 17
src/backend/replication/logical/slotsync.c