From 36bf002beaf5359981ab5099d339d730e1ea4f3c Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Thu, 3 Sep 2026 08:20:51 +0900 Subject: [PATCH v1] Stabilize 026_overwrite_contrecord test On slow machines, this test can take long enough to generate WAL that a time-based checkpoint occurs before the primary is stopped. If the checkpoint record is written to the tail WAL segment that the test later removes, a standby initialized from the resulting backup tries to read the missing checkpoint record and fails with a PANIC during startup. This caused the test to fail on buildfarm member skink. Fix this by setting checkpoint_timeout high enough to prevent unrelated checkpoints during the test. This follows the approach used by other recovery tests, such as 043_no_contrecord_switch.pl, that depend on a specific WAL layout. Backpatch to all supported versions. --- src/test/recovery/t/026_overwrite_contrecord.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/recovery/t/026_overwrite_contrecord.pl b/src/test/recovery/t/026_overwrite_contrecord.pl index 82567ca6bfc..8db06739902 100644 --- a/src/test/recovery/t/026_overwrite_contrecord.pl +++ b/src/test/recovery/t/026_overwrite_contrecord.pl @@ -17,10 +17,13 @@ use Test::More; my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init(allows_streaming => 1); -# We need these settings for stability of WAL behavior. +# We need these settings for stability of WAL behavior. checkpoint_timeout +# avoids noise from checkpoint activity, and autovacuum is disabled to avoid +# any WAL activity generated by it. $node->append_conf( 'postgresql.conf', qq( autovacuum = off +checkpoint_timeout = '30min' wal_keep_size = 1GB )); $node->start; -- 2.55.0