From 3babd2372071c1551c39bf385e3fc1322d4196c9 Mon Sep 17 00:00:00 2001 From: Hayato Kuroda Date: Fri, 31 Jul 2026 18:10:14 +0900 Subject: [PATCH v2] Make 030_pg_recvlogical robust The test assumed that OS assignes the different PID for walsenders --- src/bin/pg_basebackup/t/030_pg_recvlogical.pl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl index 5e3e36cc4f3..5b9433d5755 100644 --- a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl +++ b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl @@ -198,16 +198,17 @@ my $recv = IPC::Run::start( # Wait for pg_recvlogical to receive and write the first INSERT my $first_ins = wait_for_file($outfile, qr/INSERT/); +my $log_offset = -s $node->logfile; + # Terminate the walsender to force pg_recvlogical to reconnect -my $backend_pid = $node->safe_psql('postgres', - "SELECT active_pid FROM pg_replication_slots WHERE slot_name = 'reconnect_test'" +$node->safe_psql('postgres', + "SELECT pg_terminate_backend(active_pid) FROM pg_replication_slots WHERE slot_name = 'reconnect_test'" ); -$node->safe_psql('postgres', "SELECT pg_terminate_backend($backend_pid)"); # Wait for pg_recvlogical to reconnect -$node->poll_query_until('postgres', - "SELECT active_pid IS NOT NULL AND active_pid != $backend_pid FROM pg_replication_slots WHERE slot_name = 'reconnect_test'" -) or die "Timed out while waiting for pg_recvlogical to reconnect"; +$node->wait_for_log( + qr/acquired logical replication slot \"reconnect_test\"/, + $log_offset); # Insert the second record for this test $node->safe_psql('postgres', 'INSERT INTO test_table VALUES (2)'); -- 2.52.0