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 1wRm7E-002gUB-2s for pgsql-hackers@arkaria.postgresql.org; Tue, 26 May 2026 07:22:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRm7C-003ex9-1h for pgsql-hackers@arkaria.postgresql.org; Tue, 26 May 2026 07:22:15 +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.96) (envelope-from ) id 1wRm7C-003ex0-0E for pgsql-hackers@lists.postgresql.org; Tue, 26 May 2026 07:22:15 +0000 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRm7A-00000000oqj-198y for pgsql-hackers@postgresql.org; Tue, 26 May 2026 07:22:13 +0000 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-bd8f9889a8cso1189236166b.1 for ; Tue, 26 May 2026 00:22:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1779780129; x=1780384929; darn=postgresql.org; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:from:to:cc:subject:date:message-id:reply-to; bh=cP6YlXTWDYNCNg2nB7fsjcMLs+Fd27bDQn6Q95Aooqs=; b=IqfGJhHseK+zOBraJ280ZRJXmmMYQVT9o3BUHZKOg79GPNdWE15iZ4+jVzRZQkTOO4 H0gN2g6ei44R8F+Vcx3d+9dVdnJ178SXsp6RCd5zlRC2JwLwEiw5x2vLSe2u20gydcnn wAgFOykbxWSa9BnkhxMf87QtfHoOGxu8iDV2tq9+NmRiVM5OQWNpaVe/TWGxdmVBD3Gn mpqNuCY5i3atmaXqLcV1RlPnp6/VCKIubI9rVAmXnekHiprNSzP9KtVVSn+4qXDPcU4l DtZerEUAUmwn6LLpdyRDZDSmW8o59V8ix63Pbn5rZ5Vvi8FDBG3eVg2D3Dj6r1F8+9SO 7ldw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779780129; x=1780384929; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cP6YlXTWDYNCNg2nB7fsjcMLs+Fd27bDQn6Q95Aooqs=; b=doNC81aebYxiurr/lluc8UFvqKknu8MApr2HFR1sCIcETSSEORBVQIZb9nuyLNXP65 4ECeL49n/Navt7dkKvOFmwoQ65YP5J2mniwgKnzpL/VI2YuSoni0am2VKD0ENofEEwuI 9sb1wB9q6u5KOoMjIzPO7eteKVkDNuuPJpZIa/E/kRYZoyz7uD1DASmgGoLQq1HdjRxY D9gKz6nkkQrL2c04++KzMKbrKO/Yn9C5Xx7O2hFn6URqXP4huLojjmNOqlyDlLoSQ3T8 tkHLzaCVylv/HfLE0G9HdmTtnvLQYjR8hlhDT4Xsi587oYV9tJBMusEuTyoKS5iEjQH3 sbug== X-Gm-Message-State: AOJu0YxgX8yJUu5kyCVySbXxdPD12lhkX6WSh07rTMUV2iOdrBcccUeE tggykAx2lBkYLVsBJS0OTFAd+eSCNg/ki4JtZ9EYLqdRflMYpSTHjmDP36zmqdcKOdg= X-Gm-Gg: Acq92OGVbItvA2IXMNgJ+eP6obT4tU+4TMo0/+PwM5zMexJE678H20X1pq4u0O7RhKl Z4z8ktzxxzlpkXNO+dMWHRx/MK1SA+NOLjw4UXGhlbDP6qpEXCEWFtUu/DeImQlHc9VR5PgBa+K ljcxKUxn5mL1g9u+CJ5btcKI4xkge2T2oAjukVAhBVZuHdixyxIlbeRoIMZMEpZRLIl+2I4N0Wk 84GH5e1zT5wKQQ7o9RRCXOU47J+rNq5S2WRjVoyjRN00xZsCzsXJQU7oDpyO+/3AfYqU2F/bxnc Y4iUxMKq3uvpO8pRu0p9PsfSzND6XA06aHSmb+ii7yFIsMx+RjSvwlQ+UvBkjPg3B4X5qZmifZz eU+TyNCqcNbWE65C+POwo3/RU/RXvmiGiGo+6e4pIqVyBDI0HN3tKTFKGyIPEVX/h0qFDXwdId1 1dfJMcW1F5wiHQq4b6uSMP114MgDE4K5eRCqOCFJk2u06qDmPM X-Received: by 2002:a17:906:cc4d:b0:bd8:f7f0:f637 with SMTP id a640c23a62f3a-bdd22944717mr748532666b.5.1779780128306; Tue, 26 May 2026 00:22:08 -0700 (PDT) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bddc314c8absm466078166b.22.2026.05.26.00.22.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 May 2026 00:22:07 -0700 (PDT) Content-Type: multipart/mixed; boundary=d80ae9ebd25625e0a41bdbecf05911bbac7359cdaeac99141a615d60d8df Date: Tue, 26 May 2026 09:22:07 +0200 Message-Id: Cc: , "Robert Haas" , "Bruce Momjian" Subject: Re: libpq maligning postgres stability To: "Andres Freund" From: "Jelte Fennema-Nio" MIME-Version: 1.0 References: In-Reply-To: X-TUID: rTeV2OHkbs1J List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --d80ae9ebd25625e0a41bdbecf05911bbac7359cdaeac99141a615d60d8df Content-Type: multipart/alternative; boundary=16ae5f6066639e8fd520fb8e78ebf4e54677fb0f7f7a4e2bdb29f5d7b4c1 --16ae5f6066639e8fd520fb8e78ebf4e54677fb0f7f7a4e2bdb29f5d7b4c1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Thu, 27 Mar 2025 at 16:19, Andres Freund wrote: > And we don't even just add this message when the connection was actually > closed unexpectedly, we often do it even when we *did* get a FATAL, as in= this > example: > > psql -c 'select pg_terminate_backend(pg_backend_pid())' > FATAL: 57P01: terminating connection due to administrator command > LOCATION: ProcessInterrupts, postgres.c:3351 > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > connection to server was lost > > > I think this one is mostly a weakness in how libpq tracks connection stat= e, > but it kind of shows the silliness of claiming postgres probably crashed. I ran into this for the nth time (this time while trying to have psql handle certain FATAL errors differently). Turns out fixing this is actually really simple. All that's needed is to mark a connection as CONNECTION_BAD whenever a FATAL or PANIC error is received by the client. (this change is intended for PG20) --16ae5f6066639e8fd520fb8e78ebf4e54677fb0f7f7a4e2bdb29f5d7b4c1-- --d80ae9ebd25625e0a41bdbecf05911bbac7359cdaeac99141a615d60d8df Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-libpq-Consider-a-connection-with-a-FATAL-error-to.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-libpq-Consider-a-connection-with-a-FATAL-error-to.patch RnJvbSBhMjk5ZTdjNzc3OTMzMWRiYzA5ZDJjOGJmYzU5MjMxNTNlMTU3NjNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDI2IE1heSAyMDI2IDA5OjA1OjU2ICswMjAwClN1YmplY3Q6IFtQQVRDSCB2 MV0gbGlicHE6IENvbnNpZGVyIGEgY29ubmVjdGlvbiB3aXRoIGEgRkFUQUwgZXJyb3IgdG8gYmUK IGNsb3NlZAoKVGhpcyBzdGFydHMgbWFya2luZyBhIGNvbm5lY3Rpb24gYXMgY2xvc2VkIChpLmUu IENPTk5FQ1RJT05fQkFEKSB3aGVuCnRoZSBjbGllbnQgcmVjZWl2ZXMgYSBGQVRBTC9QQU5JQyBl cnJvci4gUHJldmlvdXNseSBhbnkgRkFUQUwgZXJyb3Igd291bGQgZ2V0IHRoZQp0aGUgInNlcnZl ciBjbG9zZWQgdGhlIGNvbm5lY3Rpb24gdW5leHBlY3RlZGx5IiBzdHJpbmcgYXBwZW5kZWQgbGlr ZSBzdWNoOgoKRkFUQUw6ICA1N1AwMTogdGVybWluYXRpbmcgY29ubmVjdGlvbiBkdWUgdG8gYWRt aW5pc3RyYXRvciBjb21tYW5kCkxPQ0FUSU9OOiAgUHJvY2Vzc0ludGVycnVwdHMsIHBvc3RncmVz LmM6MzQzMQpzZXJ2ZXIgY2xvc2VkIHRoZSBjb25uZWN0aW9uIHVuZXhwZWN0ZWRseQogICAgVGhp cyBwcm9iYWJseSBtZWFucyB0aGUgc2VydmVyIHRlcm1pbmF0ZWQgYWJub3JtYWxseQogICAgYmVm b3JlIG9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuCgpUaGlzIGFkZGl0aW9uIHRvIHRo ZSBlcnJvciBpcyBqdXN0IHBsYWluIGluY29ycmVjdCwgdGhlIHNlcnZlciB0b2xkIHRoZQpjbGll bnQgdGhhdCBpdCB3YXMgY2xvc2luZyB0aGUgY29ubmVjdGlvbi4gU28gaXQncyBub3QgdW5leHBl Y3RlZCwgbm9yCmRpZCB0aGUgc2VydmVyIHRlcm1pbmF0ZSBhYm5vcm1hbGx5LiBJdCBhbHNvIG1h a2VzIHRoZSBlcnJvciBoYXJkZXIgdG8KcGFyc2UgYnkgYSBjbGllbnQsIGJlY2F1c2UgaXQgd291 bGQgbG9zZSB0aGUgYWJpbGl0eSB0byB1c2UKUFFyZXN1bHRFcnJvckZpZWxkIG9uIHRoZSBmaW5h bCBQR3Jlc3VsdC4KLS0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyB8IDE5 ICsrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwppbmRleCA4NDBlMDE4Y2QxOC4uNTA0ZTg1OTIx OTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCisrKyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCkBAIC05NTUsNiArOTU1LDI1IEBA IHBxR2V0RXJyb3JOb3RpY2UzKFBHY29ubiAqY29ubiwgYm9vbCBpc0Vycm9yKQogCQkJCQlzaXpl b2YoY29ubi0+bGFzdF9zcWxzdGF0ZSkpOwogCQllbHNlIGlmIChpZCA9PSBQR19ESUFHX1NUQVRF TUVOVF9QT1NJVElPTikKIAkJCWhhdmVfcG9zaXRpb24gPSB0cnVlOworCQllbHNlIGlmIChpc0Vy cm9yICYmIGlkID09IFBHX0RJQUdfU0VWRVJJVFlfTk9OTE9DQUxJWkVEICYmCisJCQkJIChzdHJj bXAod29ya0J1Zi5kYXRhLCAiRkFUQUwiKSA9PSAwIHx8CisJCQkJICBzdHJjbXAod29ya0J1Zi5k YXRhLCAiUEFOSUMiKSA9PSAwKSkKKwkJeworCQkJLyoKKwkJCSAqIEEgRkFUQUwgb3IgUEFOSUMg ZnJvbSB0aGUgc2VydmVyIG1lYW5zIHRoZSBiYWNrZW5kIGlzIGdvaW5nIHRvCisJCQkgKiB0ZWFy IHRoZSBjb25uZWN0aW9uIGRvd24gcmlnaHQgYWZ0ZXIgZGVsaXZlcmluZyB0aGlzIG1lc3NhZ2Uu CisJCQkgKiBNYXJrIHRoZSBjb25uZWN0aW9uIGJhZCBpbW1lZGlhdGVseSBzbyBjYWxsZXJzIHRo YXQgZHJhaW4KKwkJCSAqIHJlc3VsdHMgKFBRZXhlY0ZpbmlzaCwgUFFleGVjU3RhcnQncyBkaXNj YXJkIGxvb3AsIGV0Yy4pIHN0b3AKKwkJCSAqIHJlYWRpbmcgZnJvbSB0aGUgc29ja2V0IGFmdGVy IHJlY2VpdmluZyB0aGlzIHJlc3VsdC4gRnVydGhlcgorCQkJICogcmVhZHMgZnJvbSB0aGUgc29j a2V0IHdpbGwgcmVjZWl2ZSBhbiBFT0YsIHdoaWNoIHdvdWxkIGNhdXNlIHVzCisJCQkgKiB0byBp bmNvcnJlY3RseSByZXBvcnQgdGhpcyBhcyBhbiB1bmV4cGVjdGVkIGNvbm5lY3Rpb24gY2xvc3Vy ZQorCQkJICogYnkgYXBwZW5kaW5nICJzZXJ2ZXIgY2xvc2VkIHRoZSBjb25uZWN0aW9uIHVuZXhw ZWN0ZWRseSAuLi4iIHRvCisJCQkgKiB0aGUgc2VydmVyJ3Mgb3duIGVycm9yIG1lc3NhZ2UuIFdl IHJlYWQgU0VWRVJJVFlfTk9OTE9DQUxJWkVECisJCQkgKiByYXRoZXIgdGhhbiBTRVZFUklUWSBz byB0aGUgY2hlY2sgaXMgaW5kZXBlbmRlbnQgb2YgdGhlCisJCQkgKiBzZXJ2ZXIncyBsY19tZXNz YWdlcyBzZXR0aW5nLgorCQkJICovCisJCQljb25uLT5zdGF0dXMgPSBDT05ORUNUSU9OX0JBRDsK KwkJfQogCX0KIAogCS8qCgpiYXNlLWNvbW1pdDogMmM0YmQyYmY1NzAwZGI5OGJlMDYwMjg1NGE4 YjdmYTJjMTZiNWY0YQotLSAKMi41NC4wCgo= --d80ae9ebd25625e0a41bdbecf05911bbac7359cdaeac99141a615d60d8df--