| From: | Fujii Masao <fujii(at)postgresql(dot)org> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Fix remote_apply waits with wal_receiver_status_interval set to |
| Date: | 2026-10-07 10:12:39 |
| Message-ID: | E1xEOdb-00000000frs-0HX4@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Fix remote_apply waits with wal_receiver_status_interval set to zero
With synchronous_commit = remote_apply, a commit could remain blocked even
after the synchronous standby had applied it when
wal_receiver_status_interval was set to zero. With both
wal_sender_timeout and wal_receiver_timeout disabled, the wait could last
indefinitely.
Commit 400a790a48e introduced this regression while avoiding unnecessary
duplicate standby status replies. It changed apply notifications from forced
replies to replies that check for WAL position changes. However,
XLogWalRcvSendReply() still returned early for non-forced replies when
wal_receiver_status_interval was zero, before checking the apply position.
Fix this by allowing apply-notification requests to bypass the early return
while preserving the existing checks that suppress unnecessary duplicate
replies.
Author: Vaibhav Dalvi <vaibhav(dot)dalvi(at)enterprisedb(dot)com>
Reviewed-by: Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>
Reviewed-by: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Discussion: https://postgr.es/m/CA+vB=AHKUhc9GCDwoLr=SshTBCQG09kp8TEXew50UtD5rYqowg@mail.gmail.com
Backpatch-through: 19
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/cc33773482e879ea746256cc344ab029df1243d9
Modified Files
--------------
src/backend/replication/walreceiver.c | 11 ++--
src/test/recovery/meson.build | 1 +
.../recovery/t/059_remote_apply_status_interval.pl | 68 ++++++++++++++++++++++
3 files changed, 75 insertions(+), 5 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Fujii Masao | 2026-10-07 10:12:54 | pgsql: Fix remote_apply waits with wal_receiver_status_interval set to |
| Previous Message | Álvaro Herrera | 2026-10-07 08:57:50 | pgsql: Concurrent REPACK: Clear out dropped-column values from all tupl |