pgsql: Fix remote_apply waits with wal_receiver_status_interval set to

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(-)

Browse pgsql-committers by date

  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