From ffcb61004fd06c9b2db56c7fe045c7c726d67a72 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 13 May 2022 13:40:03 +1200 Subject: [PATCH] Fix slow animal timeouts in 032_relfilenode_reuse.pl. Per BF animal chipmunk: CREATE DATABASE could apparently fail due to an AV process being in the template database and not quitting fast enough for the 5 second timeout in CountOtherDBBackends(). The test script had autovacuum_naptime=1s to encourage more activity that opens fds, but that wasn't strictly necessary for this test. Take it out. Per BF animal skink: the test had a global 300s timeout, but apparently that was not enough under valgrind. Use the standard timeout PostgreSQL::Test::Utils::timeout_default, but reset it for each query we run. Discussion: --- src/test/recovery/t/032_relfilenode_reuse.pl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/test/recovery/t/032_relfilenode_reuse.pl b/src/test/recovery/t/032_relfilenode_reuse.pl index ac9340b7dd..5a6a759aa5 100644 --- a/src/test/recovery/t/032_relfilenode_reuse.pl +++ b/src/test/recovery/t/032_relfilenode_reuse.pl @@ -14,7 +14,6 @@ log_connections=on # to avoid "repairing" corruption full_page_writes=off log_min_messages=debug2 -autovacuum_naptime=1s shared_buffers=1MB ]); $node_primary->start; @@ -28,11 +27,8 @@ $node_standby->init_from_backup($node_primary, $backup_name, has_streaming => 1); $node_standby->start; -# To avoid hanging while expecting some specific input from a psql -# instance being driven by us, add a timeout high enough that it -# should never trigger even on very slow machines, unless something -# is really wrong. -my $psql_timeout = IPC::Run::timer(300); +# We'll reset this timeout for each individual query we run. +my $psql_timeout = IPC::Run::timer($PostgreSQL::Test::Utils::timeout_default); my %psql_primary = (stdin => '', stdout => '', stderr => ''); $psql_primary{run} = IPC::Run::start( @@ -202,6 +198,9 @@ sub send_query_and_wait my ($psql, $query, $untl) = @_; my $ret; + $psql_timeout->reset(); + $psql_timeout->start(); + # send query $$psql{stdin} .= $query; $$psql{stdin} .= "\n"; -- 2.36.0