Stabilize 039_end_of_wal test.
authorThomas Munro <[email protected]>
Sat, 31 Aug 2024 02:32:08 +0000 (14:32 +1200)
committerThomas Munro <[email protected]>
Sat, 31 Aug 2024 02:48:44 +0000 (14:48 +1200)
The first test was sensitive to the insert LSN after setting up the
catalogs, which depended on environmental things like the locales on the
OS and usernames.  Switch to a new WAL file before the first test, as a
simple way to put every computer into the same state.

Back-patch to all supported releases.

Reported-by: Anton Voloshin <[email protected]>
Reported-by: Nathan Bossart <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
Reviewed-by: Nathan Bossart <[email protected]>
Discussion: https://postgr.es/m/b26aeac2-cb6d-4633-a7ea-945baae83dcf%40postgrespro.ru

src/test/recovery/t/039_end_of_wal.pl

index f9acc83c7d09286cf155519356a0eee288a4a8de..349bd44b7266dbf96373286010a42bf3451a5f62 100644 (file)
@@ -251,6 +251,12 @@ $WAL_BLOCK_SIZE = get_int_setting($node, 'wal_block_size');
 $TLI = $node->safe_psql('postgres',
    "SELECT timeline_id FROM pg_control_checkpoint();");
 
+# Initial LSN may vary across systems due to different catalog contents set up
+# by initdb.  Switch to a new WAL file so all systems start out in the same
+# place.  The first test depends on trailing zeroes on a page with a valid
+# header.
+$node->safe_psql('postgres', "SELECT pg_switch_wal();");
+
 my $end_lsn;
 my $prev_lsn;