Fix issue in recovery test 041_checkpoint_at_promote
authorMichael Paquier <michael@paquier.xyz>
Wed, 12 Feb 2025 08:58:25 +0000 (17:58 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 12 Feb 2025 08:58:25 +0000 (17:58 +0900)
The phase of the test waiting for a restartpoint to complete was not
working as intended, due to a log_contains() call incorrectly
written.

The problem reported by the author could be simply reproduced by
removing the injection_points_wakeup() call: the test succeeds rather
than waiting for the restartpoint completion.  In most cases, the
restartpoint completion is fast enough that the test offered the wanted
coverage.  On slow machines, it could have become unreliable.

Oversight in 6782709df81f.

Author: Nitin Jadhav
Discussion: https://postgr.es/m/CAMm1aWa_6u+o52r7h7G6pX-oWD0Qraf0ee17Ma50qxGS0B_Rzg@mail.gmail.com
Backpatch-through: 17

src/test/recovery/t/041_checkpoint_at_promote.pl

index cb301d014272c175ba8c2d3f99f34f847c7a4293..cc5aa80af4008fe6a27dd4ffa257d8778e13898d 100644 (file)
@@ -110,7 +110,7 @@ $node_standby->safe_psql('postgres',
 my $checkpoint_complete = 0;
 foreach my $i (0 .. 10 * $PostgreSQL::Test::Utils::timeout_default)
 {
-   if ($node_standby->log_contains("restartpoint complete"), $logstart)
+   if ($node_standby->log_contains("restartpoint complete", $logstart))
    {
        $checkpoint_complete = 1;
        last;