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 1w5A7z-002xYg-2b for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 22:21:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5A7x-009Lfg-39 for pgsql-hackers@arkaria.postgresql.org; Tue, 24 Mar 2026 22:21:34 +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 1w5A7x-009LfX-2B for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 22:21:34 +0000 Received: from mail-yx1-xb12d.google.com ([2607:f8b0:4864:20::b12d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5A7v-00000000xHQ-1BfK for pgsql-hackers@lists.postgresql.org; Tue, 24 Mar 2026 22:21:33 +0000 Received: by mail-yx1-xb12d.google.com with SMTP id 956f58d0204a3-64ad46a44easo5612566d50.0 for ; Tue, 24 Mar 2026 15:21:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774390890; cv=none; d=google.com; s=arc-20240605; b=jP1cqTO6+RRDU2NeZDNObdHSN2sQDv+UyG4JNy2WlBbxN1k90FQ9zkHqSStWGnAzvQ plEJtflq1rMXngCCRavRppQ9IH+qLT/jv25DN1OjrK1obWuyzUfYz3CAc29x7VKkOQ8C 8a6FC7BVGgDK1WJSONh+BMmvgk7hTgjj7o/wHuMF+ckKZADhWkxjMKCjndseYZ9XYEdM 80QM9OnttWV6ggwM2GF2SHz9vk2P87koSQqpO8t2rrulr8TCc8H0w66QKSjIe3lmccD+ G/HUJQfNdBTAL3zNAr2LaM1yDVP4LLPtEZjdKZni+/ABGQfAnJEo6b4RpPwB4AUiPb2l XSWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=DmCOTUnujuvEwhkZyViAH0MP6U/YyUz1nCe6dduTfdk=; fh=SURbGbr9G1kLWjKRByhHcUaTjzwkRibzJDNiFkE++h4=; b=RNpP8TWbw0y+ayoqjAM6Je3yX+tXXL2O3MhN1j168mLlW3+AiVX4syxHtyO5HLHbvr lNjVyniF7+/6Ul0hbAAvrVwn97gy5DLoKYen4q/QwqPj6rc/EKHTZmrUbaEJDsM6QeOf /UB2xPECSEAQQeFNLOR8FUyQ/s90sovSpZTGoL0GYjPYyyfc98cEldfahVoMy50yidCv Afsq4HmUGEMzY3Rcq0vUKQ1JPvsu+tYnU5hVcfAY9Zx8NGrlXW46smLVGS4ApzD92itF BrikRMcNkAAYm3Tvr9sRVpOoM4nBdb8QfkFN0sS/L31JI0pQCWoMLTxMlQeGCA1p8ko6 0h9Q==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=percona.com; s=google; t=1774390890; x=1774995690; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DmCOTUnujuvEwhkZyViAH0MP6U/YyUz1nCe6dduTfdk=; b=Jwxr+SfbTHbGt8umiczByvxx/fbESxqhVP8o58ys3e4/ykDAQY4jxQWE/hY/Y4+6dh YohPLPiy6a46igKw5tDrql8WsbIyiKEJ5ptg60yCxOZpdVee01iQkJHgAVdaCVWzIKOH uzWZlcbJ+Ov3R0NkeD7c/WPrXCXekSTeYMdZk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774390890; x=1774995690; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DmCOTUnujuvEwhkZyViAH0MP6U/YyUz1nCe6dduTfdk=; b=HuF3k/uA2s49m3l53Rf/9zpNnmwO10XFbD+9vSy/CgGlvCHN+DTUKRFAaZSohMYlLZ 00jfz1r5kGFFvP5WBRtcOZvdUMLktrXjlmYsoKyxJ97RCIAMeEYx9An9lnOwY+dXm5w7 e71KqJopN5ZUj7gKje3nhT4MbF0gvRrPq6cAdpF8Ze+OlRZJ2WK5U6QtPysG924c9fN0 HiuRzdv07OhfOmWJUSPtYl75KOXTYI7x92DC4G3XT6E5ICdNIGiyCxZ43wHeDaTquiX2 gmX1IVK9v9xXjSO3ILsURRhxr5jcITr9nT8Ho5gjpa9U16hF4BUYL2JhjMNBzurkDl8R lhGQ== X-Forwarded-Encrypted: i=1; AJvYcCV34ivrRZdxD44o3k71NfixHoi2lxvkjE5QojnvZapyLjG2WhNvuRTimjTHNKn54Gst0dY1Mo7x26y1JPTN@lists.postgresql.org X-Gm-Message-State: AOJu0YyhpiANT5u9soe4ytC289hfTPUXQYfn7/2vP4lC3r2doAiJAwnN XWfov26VTE/yDaykbQHmhLuaFjDLVBuevmKdaXqNNp1u6sQZECb85O4UQQ/COdJGCB66EJWrO+q 5ifzReiMR/VFG62tHi9mMMdTrsGnc9afARPjCnqUuBU15TRx+akr62fEchvD/5rXCSjgm4rhiOp i6rFAD4BKDtBwWJjaDZehoiXsWAGGzRhqBUOwwSyu3cY5YGhsSZVZhnnbML/k1Ft7mWet6n4TMA yNUbAZIJEImtGpzvvnz8DC6ha3r6rjpY1930nSVbkWMHiLpC3qGp2CmOEpG4iuGIVo= X-Gm-Gg: ATEYQzyvjf3S30w0tl5AGbaoX9VZ3XBQSwqtSoXMtligkx7xelLrqpqKRXQUjFhmWCO /bDzXoM4DUG6FbBDnBZwkTqbsqpWc+87RJoJbfk7TAn9Zj/6vVEJTicmuI7XS3YiHqLLtsD7gjt aAHLb4Pqf39kaptqlmVIIT3JDwrjenuEp7ldQA293CL+HrbeETtPSpU+uCGaROpapddepQYFJ5b ilkqkziR/IvXOMJI59KYLYvxca6gPlgUnf3PEXF7vIl8tj8Ij/qRlp/YxdL/+2DlUa4015SRnU3 XFYQm/IEcfpZHTmqvgqJ6281sXqUclD0RuXb8bJozzDLvmkuOfg68zDWY4ZmIRZQA6OS X-Received: by 2002:a05:690c:f:b0:79a:c9aa:aeef with SMTP id 00721157ae682-79acf37f15bmr16015887b3.17.1774390889659; Tue, 24 Mar 2026 15:21:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Zsolt Parragi Date: Tue, 24 Mar 2026 22:21:19 +0000 X-Gm-Features: AQROBzBxOfsSRRwowOWrUY7xd4oyzZ5V-WBOXkt5y8xwCRs-4fn90VJJlrKUMW0 Message-ID: Subject: Re: Add GoAway protocol message for graceful but fast server shutdown/switchover To: Jelte Fennema-Nio Cc: Jacob Champion , Tomas Vondra , PostgreSQL Hackers , Dave Cramer , Heikki Linnakangas Content-Type: text/plain; charset="UTF-8" X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: percona,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk + if (!goaway_reported && PQgoAwayReceived(pset.db)) + { + pg_log_info("Server sent GoAway, requesting disconnect when convenient."); + goaway_reported = true; + } Shouldn't this variable be reset in pqDropServerData? + It is possible for NoticeResponse, ParameterStatus and GoAway messages to be interspersed between CopyData messages; frontends must handle these cases, The patch currently doesn't actually do this, did you add this as future proofing? > I thought some more about this, but ultimately, the payloads you suggest > only seem useful if a client has something inbetween "disconnect hard > now" and "disconnect when the connection is unused" Couldn't a client optimize the reconnect time if it knows about the deadline? If it knows that it still has 10 minutes before the server kicks it out, it might choose to finish a 3-4 minute task, reconnect, and then continue.