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.96) (envelope-from ) id 1wstml-000rJM-19 for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Aug 2026 03:01:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wstlk-00CRdr-1C for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Aug 2026 03:00:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wstlk-00CRdj-07 for pgsql-hackers@lists.postgresql.org; Sun, 09 Aug 2026 03:00:11 +0000 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wstlb-000000015kg-1tOC for pgsql-hackers@lists.postgresql.org; Sun, 09 Aug 2026 03:00:05 +0000 Received: by mail-oi1-x231.google.com with SMTP id 5614622812f47-4ab70b882c5so446301b6e.2 for ; Sat, 08 Aug 2026 20:00:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786244400; x=1786849200; darn=lists.postgresql.org; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:content-type:from:to:cc:subject:date:message-id:reply-to :content-type; bh=YXuIf0AWIE4J7oDDc9lNSAAfkp5HSQPIolQ+4M0G32M=; b=Cf04Zj/P4UwLq/cHGMw0tFRJMyHjNGwuZSnGgGxzsuYh9gDzdwstBYQFRo9YvW9fPy lDqa/s67T0cVsvSHNZmn4HeauCG2bAiJ7f/BFNzJOqQ0lGFeY5dAPOOpt1z4eWswhdXE iBXx8jhJoh7+F6S0Rg25xZWBQyi8KegUniQmEaEVs0BACBSZM2YJmf3Nte2vjBCWHf88 acdLIG38AtN0AGV/py4EdvP9kRrckDev9Ebz0HECKrXvNSDTcli5NfAbE7be7JjQzOMB r39DKe0s1pynDoZHgasQqjK2e6D+cvcW7nCsjYyuwpLj46xtbr2AnTVtrx7wxZpxnGg8 +fAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786244400; x=1786849200; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=YXuIf0AWIE4J7oDDc9lNSAAfkp5HSQPIolQ+4M0G32M=; b=IEqdQUkR7n2OZne0HYvwK3UjKouQTrSxJGZfXXOp8Y6LdaS9nBLZGFHepihYSKGMFJ tSv0stN0ttQm1UAwj5OS524GWctlOh6Fx28uGlxnp8EUJok089Aax8pyvX34OrIMqbWt NkvnqB5PIBK5dGSzZ5GzgJtYTIQDWnFMkxIBtARnNW2GC8Go0JqDhjRjuvJNDDqHA2EK FjRZJP0MMelquzlR5jJoyfrWonKqa3N70wvsdc37j1qepOtbW3y4rO5xBRnv8W/7BV3z BgwKWEUgTl1F80E4BQOEnWBKrTAknhRcMNX4LOcn088rCliDRg7XxaB19WZZQiJFl48H IBlA== X-Gm-Message-State: AOJu0Yxq9iUqRLC775jUg50r9bcsZLzAUaU5PTTYpDUVi/c1PIjnRVxX HXFph4DY6p6/bI2cR1mUCrPugAmTfUGeEIAYAGTqEaFhPX2EKsP3Of2G5z6pEWSP X-Gm-Gg: AR+sD107AOOOGLzXbEsX5Q8FWq293keUBczRqhnllglWhr3iDL2N5NLPDjh+q8J3WUb +TXmfuYwHCpfNjzve0r0mpJPTJ8bhyPIFOGKiXQ3K2I5mP2cqFUrbtVpjrEVmAxPlE+P7R9hVsi pni/H6Imvirm+HnrjKzWgTnr6pd5fZYAimH5J2RCbkQGJ+ESOFwzI/f7kS3p5Lw/xdC7atxE749 /eUEnWZ5CI9GtvERdvhkgsk3O+jcrLe0ZYn2+LVln+m+kCjP5UCtL2dpqYmUYz+W6jgcwxwDkRc 8Em5IHOzVl8JTD1BX8SqOPveUQYj74lFCtVPnx/DCtWqy58tQK9RLmVa933dqlzgJdNeDAIIxU2 7OmbqXASx7yNiN1wegnSgvY1tBdHYDXRQXKl0fpOUybt8pdLLlwszigV7ACPZVKbky8BIrbaoh1 cEcEEMvg9C7Jd9lzO43XZ0o+D9/brCmI//r0UH2npcJO+Arp3MYGLboeWfu2oBKegIxGDBQoQHw wnqJwTFvPHyeltMvY+/VrgtRIm3QiowsT5O4WrTU3ABhy/Uzb3wITop1PkBINSMF+VkfZZFcZK5 h4cKVt6jcWpsgzo= X-Received: by 2002:a05:6808:1704:b0:489:a387:1e29 with SMTP id 5614622812f47-4afae1bfbb6mr17896437b6e.20.1786244400347; Sat, 08 Aug 2026 20:00:00 -0700 (PDT) Received: from ?IPV6:2603:8082:2b40:1f:a881:88b2:ec62:ab1d? ([2603:8082:2b40:1f:a881:88b2:ec62:ab1d]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4b1af06d882sm3753802b6e.4.2026.08.08.19.59.57 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 08 Aug 2026 19:59:58 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------Yp0XtXuLahl18pMrsifm8nTw" Message-ID: <0f515c6d-6032-4c5f-80ac-5c78faae9522@gmail.com> Date: Sat, 8 Aug 2026 21:59:57 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: pgsql-hackers@lists.postgresql.org From: Bryan Green Subject: [PATCH] Avoid uninitialized-value error in poll_query_until timeout diagnostic List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Yp0XtXuLahl18pMrsifm8nTw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Greetings, PostgreSQL::Test::Cluster::poll_query_until() accepts an undefined query for connection-only checks -- several recovery TAP tests call it that way: $node->poll_query_until('postgres', undef, ''); On timeout it builds a diag message that interpolates $query: diag qq(poll_query_until timed out executing this query: $query ...); Cluster.pm runs under "use warnings FATAL => 'all'", so when $query is undefined this does not warn, it dies with "Use of uninitialized value $query in concatenation". The result is that a timeout in a connection only poll fails with an uninitialized-value error instead of printing the timeout diagnostic the code is trying to produce, hiding the actual failure. $ perl -e 'use warnings FATAL => "all"; my $q; my $s = qq(q: $q);' Use of uninitialized value $q in concatenation (.) or string at -e line 1. The fix uses a fallback string when the query is undefined: my $msg_query = $query // '(undef - connection attempt only)'; and interpolates $msg_query instead. Test-only, one line. -- Bryan Green EDB: https://www.enterprisedb.com --------------Yp0XtXuLahl18pMrsifm8nTw Content-Type: text/plain; charset=UTF-8; name="0001-Avoid-uninitialized-value-error-in-poll_query_until-.patch" Content-Disposition: attachment; filename*0="0001-Avoid-uninitialized-value-error-in-poll_query_until-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMTRhZTYyNDBiMWYzNWMzMTQ2MTIyOGNjMmFmNzQ4YmRmODgxM2I5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCcnlhbiBHcmVlbiA8ZGJyeWFuLmdyZWVuQGdtYWls LmNvbT4KRGF0ZTogU2F0LCA4IEF1ZyAyMDI2IDE1OjI3OjQyIC0wNTAwClN1YmplY3Q6IFtQ QVRDSF0gQXZvaWQgdW5pbml0aWFsaXplZC12YWx1ZSBlcnJvciBpbiBwb2xsX3F1ZXJ5X3Vu dGlsIHRpbWVvdXQKIGRpYWdub3N0aWMKClBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI6OnBv bGxfcXVlcnlfdW50aWwoKSBhY2NlcHRzIGFuIHVuZGVmaW5lZCBxdWVyeQpmb3IgY29ubmVj dGlvbi1vbmx5IGNoZWNrczsgc2V2ZXJhbCByZWNvdmVyeSBUQVAgdGVzdHMgY2FsbCBpdCBh cwpwb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsIHVuZGVmLCAnJykuICBPbiB0aW1lb3V0 IGl0IGludGVycG9sYXRlcwokcXVlcnkgaW50byB0aGUgZGlhZyBtZXNzYWdlLCBhbmQgYmVj YXVzZSBDbHVzdGVyLnBtIHJ1bnMgdW5kZXIKInVzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxs JyIsIGludGVycG9sYXRpbmcgdGhlIHVuZGVmaW5lZCB2YWx1ZSBkaWVzIHdpdGgKIlVzZSBv ZiB1bmluaXRpYWxpemVkIHZhbHVlIiBpbnN0ZWFkIG9mIHByaW50aW5nIHRoZSBpbnRlbmRl ZCBkaWFnbm9zdGljLApoaWRpbmcgdGhlIGFjdHVhbCB0aW1lb3V0LgoKVXNlIGEgZmFsbGJh Y2sgc3RyaW5nIHdoZW4gdGhlIHF1ZXJ5IGlzIHVuZGVmaW5lZC4KCkNvLWF1dGhvcmVkLWJ5 OiBNYXJrIERpbGdlciA8bWFyay5kaWxnZXJAZW50ZXJwcmlzZWRiLmNvbT4KLS0tCiBzcmMv dGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIHwgMyArKy0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVy bC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbQppbmRleCAzZWFlNGNmNjI4Li45ZmVjNmI0 ZTQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVy LnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAg LTI4MDgsOCArMjgwOCw5IEBAIHN1YiBwb2xsX3F1ZXJ5X3VudGlsCiAKIAkjIEdpdmUgdXAu IFByaW50IHRoZSBvdXRwdXQgZnJvbSB0aGUgbGFzdCBhdHRlbXB0LCBob3BlZnVsbHkgdGhh dCdzIHVzZWZ1bAogCSMgZm9yIGRlYnVnZ2luZy4KKwlteSAkbXNnX3F1ZXJ5ID0gJHF1ZXJ5 IC8vICcodW5kZWYgLSBjb25uZWN0aW9uIGF0dGVtcHQgb25seSknOwogCWRpYWcgcXEocG9s bF9xdWVyeV91bnRpbCB0aW1lZCBvdXQgZXhlY3V0aW5nIHRoaXMgcXVlcnk6Ci0kcXVlcnkK KyRtc2dfcXVlcnkKIGV4cGVjdGluZyB0aGlzIG91dHB1dDoKICRleHBlY3RlZAogbGFzdCBh Y3R1YWwgcXVlcnkgb3V0cHV0OgotLSAKMi40OS4wCgo= --------------Yp0XtXuLahl18pMrsifm8nTw--