Retry initial slurp_file("current_logfiles"), in test 004_logrotate.pl.
authorNoah Misch <noah@leadboat.com>
Sun, 29 Nov 2020 05:52:27 +0000 (21:52 -0800)
committerNoah Misch <noah@leadboat.com>
Sun, 29 Nov 2020 05:52:27 +0000 (21:52 -0800)
Buildfarm member topminnow failed when the test script attempted this
before the syslogger would have created the file.  Back-patch to v12,
which introduced the test.

src/bin/pg_ctl/t/004_logrotate.pl

index acaade8d812ee2f9d7e8ebfe2ed459c4824c6faf..bc39abd23e4fe11a9b156e51a6323dd7ebb2d389 100644 (file)
@@ -21,7 +21,19 @@ $node->start();
 
 $node->psql('postgres', 'SELECT 1/0');
 
-my $current_logfiles = slurp_file($node->data_dir . '/current_logfiles');
+# might need to retry if logging collector process is slow...
+my $max_attempts = 180 * 10;
+
+my $current_logfiles;
+for (my $attempts = 0; $attempts < $max_attempts; $attempts++)
+{
+   eval {
+       $current_logfiles = slurp_file($node->data_dir . '/current_logfiles');
+   };
+   last unless $@;
+   usleep(100_000);
+}
+die $@ if $@;
 
 note "current_logfiles = $current_logfiles";
 
@@ -34,9 +46,6 @@ my $lfname = $current_logfiles;
 $lfname =~ s/^stderr //;
 chomp $lfname;
 
-# might need to retry if logging collector process is slow...
-my $max_attempts = 180 * 10;
-
 my $first_logfile;
 for (my $attempts = 0; $attempts < $max_attempts; $attempts++)
 {