Subject: pgsql: Fix test race between primary XLOG_RUNNING_XACTS and standby log

From: Noah Misch <[email-masked]>
Date: Mon, 19 Feb 2024 20:57:02 +0000

Fix test race between primary XLOG_RUNNING_XACTS and standby logical slot.

Before the previous commit, the test could hang until
LOG_SNAPSHOT_INTERVAL_MS (15s), until checkpoint_timeout (300s), or
indefinitely.  An indefinite hang was awfully improbable.  It entailed
the test reaching checkpoint_timeout before the
DecodingContextFindStartpoint() of a CREATE SUBSCRIPTION, yet after the
preceding WAL record.  Back-patch to v16, which introduced the test.

Bertrand Drouvot, reported by Noah Misch.

Discussion: https://postgr.es/m/[email-masked]

Branch
------
REL_16_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c59a97313ba34aeb4b1670307c0228fb94694adb

Modified Files
--------------
src/test/perl/PostgreSQL/Test/Cluster.pm           | 46 +++++++++++++++-------
.../recovery/t/035_standby_logical_decoding.pl     |  4 +-
2 files changed, 34 insertions(+), 16 deletions(-)