Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ti7ek-00BeQF-75 for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 07:59:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ti7ei-006ial-3l for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 07:59:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ti7eh-006iZJ-Py for pgsql-hackers@lists.postgresql.org; Wed, 12 Feb 2025 07:59:36 +0000 Received: from mail-vs1-xe36.google.com ([2607:f8b0:4864:20::e36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ti7eg-000NI1-2Q for pgsql-hackers@postgresql.org; Wed, 12 Feb 2025 07:59:35 +0000 Received: by mail-vs1-xe36.google.com with SMTP id ada2fe7eead31-4b68cb2abacso1663602137.3 for ; Tue, 11 Feb 2025 23:59:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739347174; x=1739951974; darn=postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=6l2kRllYKGV5+/pCu+gqm6rgGW8kWiDeOcuTsXaHGnM=; b=UemtVblREtxCFZQ1vjtC9tzn90UZRN3ez3uz7QWdldCp1xuHKJp/Hs39p8UlAlNn7b L2R21FyVMzKOcn5MyzsqBXdSNBBrMb37cMF3BXLq2+HxkDPJgjapY+bgPcS7kT1r802V zhlLHTU6zWVB4Yg2rkGd0ctbqZtjJxENnl+cmkGtk2lQAd/wZQw9XJFJhfZ9Qs6oyYEP UPZyITsqVDPGhJxQqyTksxiFykkOh4/ird76E1g14Ng6+1qx/PIHNRrYfboDwTM9vaT/ OA5AORuI8s9tZ0MHXxzQGSzJ8X5M7AlTQY6FbiP90AHHAq4Dhjqa+9GPE3AVp1K7HZa2 zUsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739347174; x=1739951974; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=6l2kRllYKGV5+/pCu+gqm6rgGW8kWiDeOcuTsXaHGnM=; b=GHbF6gS7JlA8/NQss1J9TT7PqXESSz2FF8UP7H1wDhBfsyT5OOJLCeCvaoS4+hrWJz Iwjzeslk/BFPUyFQbv+5ryd5NPHApu00QMawoP8PB7sttJmI0LCHEqeaB4YsQh9SihCE lYhmaqYdQIGy/QTG2dVbDgtXA2LCmyaJKvrTh1CcYDqoHxT+1z3RHSPmX0V1JVtTIW7r ho2TupiuW90fRTz+hd6yEQa4FE91h3eIBctD515hmQaoyWt7/yXpznDhnUuJ6SJnunNB bPjI8hjOmrDWfONwzDUwjzAH8zUOdjWfaNkA77f4HQnkzb88KpLwOf0YTo5pWzXDvaAY 08ng== X-Gm-Message-State: AOJu0YwHirn/QFgXdLNnAlvqLgGKZTTb6ifrTCyLdfOj/dIiI95OxTME wKfzZ1Qb2cErG47usor64ZokgxMX0dRJBT7tT4da+wdYLVFpf6c6qqbcJAXUskCgR7+L+F2h7vy MOx1BYpqhkPN+VCNE7TOMFQuGOhplGYRe X-Gm-Gg: ASbGncurbA6Aq/dF8IZ66WL3sRUMLwTxaGX2ZFcxl7uXnS4XLSvzVtfHu0h/HaFtAl1 5vOJmEXC7O0cvKkL46ZbsSvMtWav77IrOZJL+Xk4lNhJ/bC91alpxTkVpZJ2VswVGMpKibNl7T3 cnhnBIl9TMihsoZ+fNVgk6nFwESQWqNU8= X-Google-Smtp-Source: AGHT+IGnutsXQS9HxlQFsV2T09Rv6nQiJvDszXBB4HLo6uQwJ+Q3iWAugrMYssqeal8cVgloWqwi9moyLN1ECmDpq3A= X-Received: by 2002:a05:6102:1610:b0:4bb:c76d:39ec with SMTP id ada2fe7eead31-4bbf2309d08mr1698367137.21.1739347173791; Tue, 11 Feb 2025 23:59:33 -0800 (PST) MIME-Version: 1.0 From: Nitin Jadhav Date: Wed, 12 Feb 2025 13:28:55 +0530 X-Gm-Features: AWEUYZkvT_fCn1Szb-4VxPRZ0yVHpWOu_1Z1Q0ADvqblaa1vkKmTndPhljWCEhY Message-ID: Subject: Address the bug in 041_checkpoint_at_promote.pl To: Pg Hackers Cc: Michael Paquier Content-Type: multipart/mixed; boundary="0000000000006f79b2062ded5242" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006f79b2062ded5242 Content-Type: text/plain; charset="UTF-8" While testing, I discovered an issue in 041_checkpoint_at_promote.pl. # Wait until the previous restart point completes on the newly-promoted # standby, checking the logs for that. my $checkpoint_complete = 0; foreach my $i (0 .. 10 * $PostgreSQL::Test::Utils::timeout_default) { if ($node_standby->log_contains("restartpoint complete"), $logstart) { $checkpoint_complete = 1; last; } usleep(100_000); } is($checkpoint_complete, 1, 'restart point has completed'); The code is intended to wait for the restart point to complete before proceeding. However, it doesn't actually wait. Regardless of whether the restart point completes, the loop exits after the first iteration because the if condition always evaluates to true. This happens because $logstart is not passed as an argument to log_contains() by mistake. If the restart point operation is quick, this issue might not be noticeable, which is often the case. I've attached a patch to fix this issue. Please review and share your feedback. Best Regards, Nitin Jadhav Azure Database for PostgreSQL Microsoft --0000000000006f79b2062ded5242 Content-Type: application/octet-stream; name="0001-Fix-the-bug-in-041_checkpoint_at_promote.pl.patch" Content-Disposition: attachment; filename="0001-Fix-the-bug-in-041_checkpoint_at_promote.pl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71m1q870 RnJvbSBhYzFmY2M3MDMxZWY1NDcyNDViYTI5YjAwZTEwYmZlNzdhZmViNTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBKYWRoYXYgPG5pdGluamFkaGF2QG1pY3Jvc29mdC5j b20+CkRhdGU6IFdlZCwgMTIgRmViIDIwMjUgMDc6NDI6NDQgKzAwMDAKU3ViamVjdDogW1BBVENI XSBGaXggdGhlIGJ1ZyBpbiAwNDFfY2hlY2twb2ludF9hdF9wcm9tb3RlLnBsCgpUaGUgY29kZSBp c24ndCBmdW5jdGlvbmluZyBhcyBpbnRlbmRlZC4gSXQgc2hvdWxkIHdhaXQgZm9yIHRoZSByZXN0 YXJ0CnBvaW50IG9wZXJhdGlvbiB0byBjb21wbGV0ZSwgYnV0IGl0IGRvZXNuJ3QgZHVlIHRvIGEg c21hbGwgbWlzdGFrZQp3aXRoIHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzLiBUaGUgbG9nc3RhcnQg dmFyaWFibGUgc2hvdWxkIGJlIHBhc3NlZAphcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGxvZ19j b250YWlucygpLiBUaGlzIHBhdGNoIGNvcnJlY3RzIHRoYXQgaXNzdWUuCi0tLQogc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wNDFfY2hlY2twb2ludF9hdF9wcm9tb3RlLnBsIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wNDFfY2hlY2twb2ludF9hdF9wcm9tb3RlLnBsIGIvc3JjL3Rlc3QvcmVj b3ZlcnkvdC8wNDFfY2hlY2twb2ludF9hdF9wcm9tb3RlLnBsCmluZGV4IGNiMzAxZDAxNDI3Li5j YzVhYTgwYWY0MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNDFfY2hlY2twb2lu dF9hdF9wcm9tb3RlLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDQxX2NoZWNrcG9pbnRf YXRfcHJvbW90ZS5wbApAQCAtMTEwLDcgKzExMCw3IEBAICRub2RlX3N0YW5kYnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLAogbXkgJGNoZWNrcG9pbnRfY29tcGxldGUgPSAwOwogZm9yZWFjaCBteSAk aSAoMCAuLiAxMCAqICRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0KQog ewotCWlmICgkbm9kZV9zdGFuZGJ5LT5sb2dfY29udGFpbnMoInJlc3RhcnRwb2ludCBjb21wbGV0 ZSIpLCAkbG9nc3RhcnQpCisJaWYgKCRub2RlX3N0YW5kYnktPmxvZ19jb250YWlucygicmVzdGFy dHBvaW50IGNvbXBsZXRlIiwgJGxvZ3N0YXJ0KSkKIAl7CiAJCSRjaGVja3BvaW50X2NvbXBsZXRl ID0gMTsKIAkJbGFzdDsKLS0gCjIuNDMuMAoK --0000000000006f79b2062ded5242--