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 1rnlya-00F4P5-0l for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2024 20:58:56 +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 1rnlyY-007QQ2-9V for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2024 20:58:54 +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.94.2) (envelope-from ) id 1rnlyX-007QPt-SN for pgsql-hackers@lists.postgresql.org; Fri, 22 Mar 2024 20:58:54 +0000 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rnlyQ-005y9T-Cd for pgsql-hackers@postgresql.org; Fri, 22 Mar 2024 20:58:53 +0000 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-6ddf26eba3cso1614189a34.0 for ; Fri, 22 Mar 2024 13:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=neon.tech; s=google; t=1711141124; x=1711745924; darn=postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0YX5dGOtM9M6CXYrKer9s3XlL8nJ0CfCUmjvlm6XRI8=; b=kVYy3Mup5ZRDZRh/FKsr43+DsIg3/iRfqm2LGxofevXjb4qfDtoUXfsnMoZxR3OVzl eeji/HgLtejpqt69QFvpKi/CCWL8o/AWl3+ToHWPUpprmaKuydfXBwPBUguEfujmjfky 074lDuXRmjNeNqk78MoZfXHA3drFOADfg++zk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711141124; x=1711745924; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0YX5dGOtM9M6CXYrKer9s3XlL8nJ0CfCUmjvlm6XRI8=; b=mK5xZeHV9Ek4JjLYdA8lXDlHQFuqy1miFiMow3BDqfPIg0eZCddpwaA+Dny5P6EHOu 6Q8eccPFN5MaGw9NxsZT8rEUKkI6bgIZt/iPIkM7BLRZ2RNxWA2N9ecoxJH79HZX69Od VMghw6m3rCGdTNwyIScRRosA++JNQqusLwBdlwyDeB9XeFnGYwnUwkso9SzIEfD2Q69s e1+Xpfenbc1yl89/XfBBLUE4+Bm2/eMoQD7Gjf8CSsdER/2l0g2xj6Jd0URn3DmRdRHu EHWbI2st6xmxZUbiftQp/2qSyO/E3MVk5uDbdZ61xbbyMNHtYkMgq7eZr/V/+pd5S9YC eEJg== X-Forwarded-Encrypted: i=1; AJvYcCUUU877iJ4qv4XKQK2PQ5EcuvxynaukfpNYQqpE6ZEDiQGsVxc2Aqzhu2NfPGQd6kdY9neKbJbYc1JiZeUYe0IKoCCKJjhkAYYNV8Eo X-Gm-Message-State: AOJu0YxYtOst3Nz+Mpx0FzTmKJT7CFtVHScsXJG+5U2vXjd2+AAFyRSt C34cA0lP2OrZHyrVrscB6Wy6yzUXpW4sw86SYls/5129aWSN9ra9o8sLaLFZhW8= X-Google-Smtp-Source: AGHT+IGP0oLFabN8d82GOIM+/QPD0xUSHvVROMGW4VctCjZrg8WYyTUkm6vfkcxLcMQNbC6JT/+Jxg== X-Received: by 2002:a05:6870:414d:b0:229:ecfa:f226 with SMTP id r13-20020a056870414d00b00229ecfaf226mr979511oad.53.1711141124423; Fri, 22 Mar 2024 13:58:44 -0700 (PDT) Received: from localhost ([2607:fb91:1281:8489:3996:e070:71ee:42fb]) by smtp.gmail.com with ESMTPSA id gv11-20020a056870aa0b00b00221bd1348a9sm114670oab.23.2024.03.22.13.58.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Mar 2024 13:58:43 -0700 (PDT) Content-Type: multipart/mixed; boundary=009ef093a34329cc595ff44b50674f5daad185512d271459b1407572b54c Mime-Version: 1.0 Date: Fri, 22 Mar 2024 15:58:42 -0500 Message-Id: Cc: "Jelte Fennema-Nio" , "Heikki Linnakangas" , "Tom Lane" , , "Shlok Kyal" Subject: Re: psql not responding to SIGINT upon db reconnection To: "Robert Haas" From: "Tristan Partin" X-Mailer: aerc 0.17.0-78-g4ffbaa6b3946 References: <1588058.1690220636@sss.pgh.pa.us> <5e28b89f-0033-4e42-8184-b71b731c1aa2@iki.fi> <9b3693b7-0bc3-430a-b43f-eae44e8a39b6@iki.fi> <032868e0-a530-4fc7-972c-af6f08950b7e@iki.fi> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --009ef093a34329cc595ff44b50674f5daad185512d271459b1407572b54c Content-Type: multipart/alternative; boundary=e210542ad7ea3163edd0c42fd195340063468017645d516e63ca9800bdf5 --e210542ad7ea3163edd0c42fd195340063468017645d516e63ca9800bdf5 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Fri Mar 22, 2024 at 12:17 PM CDT, Robert Haas wrote: > On Fri, Mar 22, 2024 at 1:05=E2=80=AFPM Tristan Partin wrote: > > Sorry for taking a while to get back to y'all. I have taken your > > feedback into consideration for v9. This is my first time writing > > Postgres docs, so I'm ready for another round of editing :). > > Yeah, that looks like it needs some wordsmithing yet. I can take a > crack at that at some point, but here are a few notes: > > - "takes care of" and "working through the state machine" seem quite > vague to me. > - the meanings of forRead and forWrite don't seem to be documented. > - "retuns" is a typo. > > > Robert, could you point out some places where comments would be useful > > in 0002? I did rename the function and moved it as suggested, thanks! I= n > > turn, I also realized I forgot a prototype, so also added it. > > Well, for starters, I'd give the function a header comment. > > Telling me that a 1 second timeout is a 1 second timeout is less > useful than telling me why we've picked a 1 second timeout. Presumably > the answer is "so we can respond to cancel interrupts in a timely > fashion", but I'd make that explicit. > > It might be worth a comment saying that PQsocket() shouldn't be > hoisted out of the loop because it could be a multi-host connection > string and the socket might change under us. Unless that's not true, > in which case we should hoist the PQsocket() call out of the loop. > > I think it would also be worth a comment saying that we don't need to > report errors here, as the caller will do that; we just need to wait > until the connection is known to have either succeeded or failed, or > until the user presses cancel. This is good feedback, thanks. I have added comments where you=20 suggested. I reworded the PQsocketPoll docs to hopefully meet your=20 expectations. I am using the term "connection sequence" which is from=20 the PQconnectStartParams docs, so hopefully people will be able to make=20 that connection. I wrote documentation for "forRead" and "forWrite" as=20 well. I had a question about parameter naming. Right now I have a mix of=20 camel-case and snake-case in the function signature since that is what=20 I inherited. Should I change that to be consistent? If so, which case=20 would you like? Thanks for your continued reviews. --=20 Tristan Partin Neon (https://neon.tech) --e210542ad7ea3163edd0c42fd195340063468017645d516e63ca9800bdf5-- --009ef093a34329cc595ff44b50674f5daad185512d271459b1407572b54c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0001-Expose-PQsocketPoll-for-frontends.patch Content-Type: text/x-patch; charset=utf-8; name=v10-0001-Expose-PQsocketPoll-for-frontends.patch RnJvbSBkYzQ1ZTk1YWI0NDNkOTczODQ1ZGQ4NDA2MDBkNjcxOWRjZDRjYWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBuZW9uLnRlY2g+CkRh dGU6IFR1ZSwgMzAgSmFuIDIwMjQgMTU6NDA6NTcgLTA2MDAKU3ViamVjdDogW1BBVENIIHYxMCAx LzJdIEV4cG9zZSBQUXNvY2tldFBvbGwgZm9yIGZyb250ZW5kcwoKUFFzb2NrZXRQb2xsIHNob3Vs ZCBoZWxwIHdpdGggc3RhdGUgbWFjaGluZSBwcm9jZXNzaW5nIHdoZW4gY29ubmVjdGluZwp0byBh IGRhdGFiYXNlIGFzeW5jaHJvbm91c2x5IHZpYSBQUWNvbm5lY3RTdGFydCgpLgotLS0KIGRvYy9z cmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IHwgIDEgKwogc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jICAgfCAgNyArKystLS0KIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2xpYnBxLWZlLmggIHwgIDQgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCBkM2U4NzA1NmYyYy4uNzc0YjU3YmE3MGIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9s aWJwcS5zZ21sCkBAIC0yNjIsNiArMjYyLDQ0IEBAIFBHY29ubiAqUFFzZXRkYihjaGFyICpwZ2hv c3QsCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlz dGVudHJ5IGlkPSJsaWJwcS1QUXNvY2tldFBvbGwiPgorICAgICA8dGVybT48ZnVuY3Rpb24+UFFz b2NrZXRQb2xsPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc29ja2V0UG9sbDwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+bm9uYmxvY2tpbmcgY29ubmVjdGlvbjwvcHJpbWFy eT48L2luZGV4dGVybT4KKyAgICAgICBQb2xsIGEgY29ubmVjdGlvbiZhcG9zO3MgdW5kZXJseWlu ZyBzb2NrZXQgZGVzY3JpcHRvciByZXRyaWV2ZWQgd2l0aCA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UXNvY2tldCIvPi4KKzxzeW5vcHNpcz4KK2ludCBQUXNvY2tldFBvbGwoaW50IHNvY2ssIGludCBm b3JSZWFkLCBpbnQgZm9yV3JpdGUsIHRpbWVfdCBlbmRfdGltZSk7Cis8L3N5bm9wc2lzPgorICAg ICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdXAg cG9sbGluZyBvZiBhIGZpbGUgZGVzY3JpcHRvci4gVGhlIHVuZGVybHlpbmcgZnVuY3Rpb24gaXMg ZWl0aGVyCisgICAgICAgPGZ1bmN0aW9uPnBvbGwoMik8L2Z1bmN0aW9uPiBvciA8ZnVuY3Rpb24+ c2VsZWN0KDIpPC9mdW5jdGlvbj4sIGRlcGVuZGluZyBvbiBwbGF0Zm9ybQorICAgICAgIHN1cHBv cnQuIFRoZSBwcmltYXJ5IHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIGl0ZXJhdGluZyB0aHJvdWdo IHRoZSBjb25uZWN0aW9uIHNlcXVlbmNlCisgICAgICAgZGVzY3JpYmVkIGluIHRoZSBkb2N1bWVu dGF0aW9uIG9mIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRY29ubmVjdFN0YXJ0UGFyYW1zIi8+LiBJ ZgorICAgICAgIDxwYXJhbWV0ZXI+Zm9yUmVhZDwvcGFyYW1ldGVyPiBpcyBzcGVjaWZpZWQsIHRo ZSBmdW5jdGlvbiB3YWl0cyBmb3IgdGhlIHNvY2tldCB0byBiZSByZWFkeQorICAgICAgIGZvciBy ZWFkaW5nLiBJZiA8cGFyYW1ldGVyPmZvcldyaXRlPC9wYXJhbWV0ZXI+IGlzIHNwZWNpZmllZCwg dGhlIGZ1bmN0aW9uIHdhaXRzIGZvciB0aGUKKyAgICAgICBzb2NrZXQgdG8gYmUgcmVhZHkgZm9y IHdyaXRlLiBTZWUgPGxpdGVyYWw+UE9MTElOPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+UE9MTE9V VDwvbGl0ZXJhbD4KKyAgICAgICBmcm9tIDxmdW5jdGlvbj5wb2xsKDIpPC9mdW5jdGlvbj4sIG9y IDxwYXJhbWV0ZXI+cmVhZGZkczwvcGFyYW1ldGVyPiBhbmQKKyAgICAgICA8cGFyYW1ldGVyPndy aXRlZmRzPC9wYXJhbWV0ZXI+IGZyb20gPGZ1bmN0aW9uPnNlbGVjdCgyKTwvZnVuY3Rpb24+IGZv ciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAg ICBUaGUgZnVuY3Rpb24gcmV0dXJucyBhIHZhbHVlIGdyZWF0ZXIgdGhhbiA8bGl0ZXJhbD4wPC9s aXRlcmFsPiBpZiB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbgorICAgICAgIGlzIG1ldCwgPGxpdGVy YWw+MDwvbGl0ZXJhbD4gaWYgYSB0aW1lb3V0IG9jY3VycmVkLCBvciA8bGl0ZXJhbD4tMTwvbGl0 ZXJhbD4gaWYgYW4gZXJyb3IKKyAgICAgICBvciBpbnRlcnJ1cHQgb2NjdXJyZWQuIEluIHRoZSBl dmVudCA8bGl0ZXJhbD5mb3JSZWFkPC9saXRlcmFsPiBhbmQKKyAgICAgICA8bGl0ZXJhbD5mb3JX cml0ZTwvbGl0ZXJhbD4gYXJlIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiBpbW1lZGlhdGVseSByZXR1 cm5zIGEgdGltZW91dAorICAgICAgIGNvbmRpdGlvbi4KKyAgICAgIDwvcGFyYT4KKworICAgICAg PHBhcmE+CisgICAgICAgPGxpdGVyYWw+ZW5kX3RpbWU8L2xpdGVyYWw+IGlzIHRoZSB0aW1lIGlu IHRoZSBmdXR1cmUgaW4gc2Vjb25kcyBzdGFydGluZyBmcm9tIHRoZSBVTklYCisgICAgICAgZXBv Y2ggaW4gd2hpY2ggeW91IHdvdWxkIGxpa2UgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiBpZiB0aGUg Y29uZGl0aW9uIGlzIG5vdCBtZXQuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+Cisg ICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWNvbm5l Y3RTdGFydFBhcmFtcyI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWNvbm5lY3RTdGFydFBhcmFt czwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWNvbm5lY3RTdGFydFBhcmFtczwvcHJp bWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUWNvbm5lY3RT dGFydDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWNvbm5lY3RTdGFydDwvcHJpbWFy eT48L2luZGV4dGVybT48L3Rlcm0+CkBAIC0zNTgsNyArMzk2LDEwIEBAIFBvc3RncmVzUG9sbGlu Z1N0YXR1c1R5cGUgUFFjb25uZWN0UG9sbChQR2Nvbm4gKmNvbm4pOwogICAgICAgIExvb3AgdGh1 czogSWYgPGZ1bmN0aW9uPlBRY29ubmVjdFBvbGwoY29ubik8L2Z1bmN0aW9uPiBsYXN0IHJldHVy bmVkCiAgICAgICAgPHN5bWJvbD5QR1JFU19QT0xMSU5HX1JFQURJTkc8L3N5bWJvbD4sIHdhaXQg dW50aWwgdGhlIHNvY2tldCBpcyByZWFkeSB0bwogICAgICAgIHJlYWQgKGFzIGluZGljYXRlZCBi eSA8ZnVuY3Rpb24+c2VsZWN0KCk8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPnBvbGwoKTwvZnVuY3Rp b24+LCBvcgotICAgICAgIHNpbWlsYXIgc3lzdGVtIGZ1bmN0aW9uKS4KKyAgICAgICBzaW1pbGFy IHN5c3RlbSBmdW5jdGlvbikuICBOb3RlIHRoYXQgPGZ1bmN0aW9uPlBRc29ja2V0UG9sbDwvZnVu Y3Rpb24+CisgICAgICAgY2FuIGhlbHAgcmVkdWNlIGJvaWxlcnBsYXRlIGJ5IGFic3RyYWN0aW5n IHRoZSBzZXR1cCBvZgorICAgICAgIDxmdW5jdGlvbj5zZWxlY3QoMik8L2Z1bmN0aW9uPiBvciA8 ZnVuY3Rpb24+cG9sbCgyKTwvZnVuY3Rpb24+IGlmIGl0IGlzCisgICAgICAgYXZhaWxhYmxlIG9u IHlvdXIgc3lzdGVtLgogICAgICAgIFRoZW4gY2FsbCA8ZnVuY3Rpb24+UFFjb25uZWN0UG9sbChj b25uKTwvZnVuY3Rpb24+IGFnYWluLgogICAgICAgIENvbnZlcnNlbHksIGlmIDxmdW5jdGlvbj5Q UWNvbm5lY3RQb2xsKGNvbm4pPC9mdW5jdGlvbj4gbGFzdCByZXR1cm5lZAogICAgICAgIDxzeW1i b2w+UEdSRVNfUE9MTElOR19XUklUSU5HPC9zeW1ib2w+LCB3YWl0IHVudGlsIHRoZSBzb2NrZXQg aXMgcmVhZHkKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggOWZiZDNkMzQwNzQuLjFlNDhk Mzc2NzdkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dAorKysg Yi9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dApAQCAtMjAyLDMgKzIwMiw0IEBAIFBR Y2FuY2VsU29ja2V0ICAgICAgICAgICAgMTk5CiBQUWNhbmNlbEVycm9yTWVzc2FnZSAgICAgIDIw MAogUFFjYW5jZWxSZXNldCAgICAgICAgICAgICAyMDEKIFBRY2FuY2VsRmluaXNoICAgICAgICAg ICAgMjAyCitQUXNvY2tldFBvbGwgICAgICAgICAgICAgIDIwMwpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5j CmluZGV4IGYyZmM3OGE0ODFjLi5mNTYyY2Q4ZDM0NCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtbWlzYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLW1pc2MuYwpA QCAtNTUsNyArNTUsNiBAQCBzdGF0aWMgaW50CXBxUHV0TXNnQnl0ZXMoY29uc3Qgdm9pZCAqYnVm LCBzaXplX3QgbGVuLCBQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlwcVNlbmRTb21lKFBHY29u biAqY29ubiwgaW50IGxlbik7CiBzdGF0aWMgaW50CXBxU29ja2V0Q2hlY2soUEdjb25uICpjb25u LCBpbnQgZm9yUmVhZCwgaW50IGZvcldyaXRlLAogCQkJCQkJICB0aW1lX3QgZW5kX3RpbWUpOwot c3RhdGljIGludAlwcVNvY2tldFBvbGwoaW50IHNvY2ssIGludCBmb3JSZWFkLCBpbnQgZm9yV3Jp dGUsIHRpbWVfdCBlbmRfdGltZSk7CiAKIC8qCiAgKiBQUWxpYlZlcnNpb246IHJldHVybiB0aGUg bGlicHEgdmVyc2lvbiBudW1iZXIKQEAgLTEwNTksNyArMTA1OCw3IEBAIHBxU29ja2V0Q2hlY2so UEdjb25uICpjb25uLCBpbnQgZm9yUmVhZCwgaW50IGZvcldyaXRlLCB0aW1lX3QgZW5kX3RpbWUp CiAKIAkvKiBXZSB3aWxsIHJldHJ5IGFzIGxvbmcgYXMgd2UgZ2V0IEVJTlRSICovCiAJZG8KLQkJ cmVzdWx0ID0gcHFTb2NrZXRQb2xsKGNvbm4tPnNvY2ssIGZvclJlYWQsIGZvcldyaXRlLCBlbmRf dGltZSk7CisJCXJlc3VsdCA9IFBRc29ja2V0UG9sbChjb25uLT5zb2NrLCBmb3JSZWFkLCBmb3JX cml0ZSwgZW5kX3RpbWUpOwogCXdoaWxlIChyZXN1bHQgPCAwICYmIFNPQ0tfRVJSTk8gPT0gRUlO VFIpOwogCiAJaWYgKHJlc3VsdCA8IDApCkBAIC0xMDgzLDggKzEwODIsOCBAQCBwcVNvY2tldENo ZWNrKFBHY29ubiAqY29ubiwgaW50IGZvclJlYWQsIGludCBmb3JXcml0ZSwgdGltZV90IGVuZF90 aW1lKQogICogVGltZW91dCBpcyBpbmZpbml0ZSBpZiBlbmRfdGltZSBpcyAtMS4gIFRpbWVvdXQg aXMgaW1tZWRpYXRlIChubyBibG9ja2luZykKICAqIGlmIGVuZF90aW1lIGlzIDAgKG9yIGluZGVl ZCwgYW55IHRpbWUgYmVmb3JlIG5vdykuCiAgKi8KLXN0YXRpYyBpbnQKLXBxU29ja2V0UG9sbChp bnQgc29jaywgaW50IGZvclJlYWQsIGludCBmb3JXcml0ZSwgdGltZV90IGVuZF90aW1lKQoraW50 CitQUXNvY2tldFBvbGwoaW50IHNvY2ssIGludCBmb3JSZWFkLCBpbnQgZm9yV3JpdGUsIHRpbWVf dCBlbmRfdGltZSkKIHsKIAkvKiBXZSB1c2UgcG9sbCgyKSBpZiBhdmFpbGFibGUsIG90aGVyd2lz ZSBzZWxlY3QoMikgKi8KICNpZmRlZiBIQVZFX1BPTEwKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2xpYnBxLWZlLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCmlu ZGV4IDA5YjQ4NWJkMmJjLi44ZDNjNWM2ZjY2MiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBA IC0yMSw2ICsyMSw3IEBAIGV4dGVybiAiQyIKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDx0aW1lLmg+CiAKIC8qCiAgKiBwb3N0Z3Jlc19leHQuaCBkZWZpbmVzIHRoZSBi YWNrZW5kJ3MgZXh0ZXJuYWxseSB2aXNpYmxlIHR5cGVzLApAQCAtNjcwLDYgKzY3MSw5IEBAIGV4 dGVybiBpbnQJbG9fZXhwb3J0KFBHY29ubiAqY29ubiwgT2lkIGxvYmpJZCwgY29uc3QgY2hhciAq ZmlsZW5hbWUpOwogLyogR2V0IHRoZSB2ZXJzaW9uIG9mIHRoZSBsaWJwcSBsaWJyYXJ5IGluIHVz ZSAqLwogZXh0ZXJuIGludAlQUWxpYlZlcnNpb24odm9pZCk7CiAKKy8qIFBvbGwgYSBzb2NrZXQg Zm9yIHJlYWRpbmcgYW5kL29yIHdyaXRpbmcgd2l0aCBhbiBvcHRpb25hbCB0aW1lb3V0ICovCitl eHRlcm4gaW50CVBRc29ja2V0UG9sbChpbnQgc29jaywgaW50IGZvclJlYWQsIGludCBmb3JXcml0 ZSwgdGltZV90IGVuZF90aW1lKTsKKwogLyogRGV0ZXJtaW5lIGxlbmd0aCBvZiBtdWx0aWJ5dGUg ZW5jb2RlZCBjaGFyIGF0ICpzICovCiBleHRlcm4gaW50CVBRbWJsZW4oY29uc3QgY2hhciAqcywg aW50IGVuY29kaW5nKTsKIAotLSAKVHJpc3RhbiBQYXJ0aW4KTmVvbiAoaHR0cHM6Ly9uZW9uLnRl Y2gpCgo= --009ef093a34329cc595ff44b50674f5daad185512d271459b1407572b54c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v10-0002-Allow-SIGINT-to-cancel-psql-database-reconnectio.patch Content-Type: text/x-patch; charset=utf-8; name=v10-0002-Allow-SIGINT-to-cancel-psql-database-reconnectio.patch RnJvbSBkYzFlYjM4NjY5NzU2ODBiNTU0NTFiNzliNDBmMTA5ZTMxMDRlZWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBuZW9uLnRlY2g+CkRh dGU6IFR1ZSwgMzAgSmFuIDIwMjQgMTU6NTM6MTAgLTA2MDAKU3ViamVjdDogW1BBVENIIHYxMCAy LzJdIEFsbG93IFNJR0lOVCB0byBjYW5jZWwgcHNxbCBkYXRhYmFzZSByZWNvbm5lY3Rpb25zCgpB ZnRlciBpbnN0YWxsaW5nIHRoZSBTSUdJTlQgaGFuZGxlciBpbiBwc3FsLCBTSUdJTlQgY2FuIG5v IGxvbmdlciBjYW5jZWwKZGF0YWJhc2UgcmVjb25uZWN0aW9ucy4gRm9yIGluc3RhbmNlLCBpZiB0 aGUgdXNlciBzdGFydHMgYSByZWNvbm5lY3Rpb24KYW5kIHRoZW4gbmVlZHMgdG8gZG8gc29tZSBm b3JtIG9mIGludGVyYWN0aW9uIChpZSBwc3FsIGlzIHBvbGxpbmcpLAp0aGVyZSBpcyBubyB3YXkg dG8gY2FuY2VsIHRoZSByZWNvbm5lY3Rpb24gcHJvY2VzcyBjdXJyZW50bHkuCgpVc2UgUFFjb25u ZWN0U3RhcnRQYXJhbXMoKSBpbiBvcmRlciB0byBpbnNlcnQgYSBjYW5jZWxfcHJlc3NlZCBjaGVj awppbnRvIHRoZSBwb2xsaW5nIGxvb3AuCi0tLQogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyB8IDcy ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5n ZWQsIDcxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCA5YjBmYTA0MWY3 My4uMWUwMGIwZDQ4NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtMTU5LDYgKzE1OSw3IEBAIHN0YXRpYyB2b2lkIGRp c2NhcmRfcXVlcnlfdGV4dChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIENvbmRpdGlvbmFsU3Rh Y2sgY3N0YWNrCiBzdGF0aWMgYm9vbCBjb3B5X3ByZXZpb3VzX3F1ZXJ5KFBRRXhwQnVmZmVyIHF1 ZXJ5X2J1ZiwgUFFFeHBCdWZmZXIgcHJldmlvdXNfYnVmKTsKIHN0YXRpYyBib29sIGRvX2Nvbm5l Y3QoZW51bSB0cml2YWx1ZSByZXVzZV9wcmV2aW91c19zcGVjaWZpY2F0aW9uLAogCQkJCQkgICBj aGFyICpkYm5hbWUsIGNoYXIgKnVzZXIsIGNoYXIgKmhvc3QsIGNoYXIgKnBvcnQpOworc3RhdGlj IHZvaWQgd2FpdF91bnRpbF9jb25uZWN0ZWQoUEdjb25uICpjb25uKTsKIHN0YXRpYyBib29sIGRv X2VkaXQoY29uc3QgY2hhciAqZmlsZW5hbWVfYXJnLCBQUUV4cEJ1ZmZlciBxdWVyeV9idWYsCiAJ CQkJCWludCBsaW5lbm8sIGJvb2wgZGlzY2FyZF9vbl9xdWl0LCBib29sICplZGl0ZWQpOwogc3Rh dGljIGJvb2wgZG9fc2hlbGwoY29uc3QgY2hhciAqY29tbWFuZCk7CkBAIC0zNTk1LDExICszNTk2 LDEyIEBAIGRvX2Nvbm5lY3QoZW51bSB0cml2YWx1ZSByZXVzZV9wcmV2aW91c19zcGVjaWZpY2F0 aW9uLAogCQl2YWx1ZXNbcGFyYW1udW1dID0gTlVMTDsKIAogCQkvKiBOb3RlIHdlIGRvIG5vdCB3 YW50IGxpYnBxIHRvIHJlLWV4cGFuZCB0aGUgZGJuYW1lIHBhcmFtZXRlciAqLwotCQluX2Nvbm4g PSBQUWNvbm5lY3RkYlBhcmFtcyhrZXl3b3JkcywgdmFsdWVzLCBmYWxzZSk7CisJCW5fY29ubiA9 IFBRY29ubmVjdFN0YXJ0UGFyYW1zKGtleXdvcmRzLCB2YWx1ZXMsIGZhbHNlKTsKIAogCQlwZ19m cmVlKGtleXdvcmRzKTsKIAkJcGdfZnJlZSh2YWx1ZXMpOwogCisJCXdhaXRfdW50aWxfY29ubmVj dGVkKG5fY29ubik7CiAJCWlmIChQUXN0YXR1cyhuX2Nvbm4pID09IENPTk5FQ1RJT05fT0spCiAJ CQlicmVhazsKIApAQCAtMzc0OCw2ICszNzUwLDc0IEBAIGRvX2Nvbm5lY3QoZW51bSB0cml2YWx1 ZSByZXVzZV9wcmV2aW91c19zcGVjaWZpY2F0aW9uLAogCXJldHVybiB0cnVlOwogfQogCisvKgor ICogUHJvY2Vzc2VzIHRoZSBjb25uZWN0aW9uIHNlcXVlbmNlIGRlc2NyaWJlZCBieSBQUWNvbm5l Y3RTdGFydFBhcmFtcygpLiBEb24ndAorICogd29ycnkgYWJvdXQgcmVwb3J0aW5nIGVycm9ycyBp biB0aGlzIGZ1bmN0aW9uLiBPdXIgY2FsbGVyIHdpbGwgY2hlY2sgdGhlCisgKiBjb25uZWN0aW9u J3Mgc3RhdHVzLCBhbmQgcmVwb3J0IGFwcHJvcHJpYXRlbHkuCisgKi8KK3N0YXRpYyB2b2lkCit3 YWl0X3VudGlsX2Nvbm5lY3RlZChQR2Nvbm4gKmNvbm4pCit7CisJYm9vbAkJZm9yUmVhZCA9IGZh bHNlOworCisJd2hpbGUgKHRydWUpCisJeworCQlpbnQJCQlyYzsKKwkJaW50CQkJc29jazsKKwkJ dGltZV90CQllbmRfdGltZTsKKworCQkvKgorCQkgKiBPbiBldmVyeSBpdGVyYXRpb24gb2YgdGhl IGNvbm5lY3Rpb24gc2VxdWVuY2UsIGxldCdzIGNoZWNrIGlmIHRoZQorCQkgKiB1c2VyIGhhcyBy ZXF1ZXN0ZWQgYSBjYW5jZWxsYXRpb24uCisJCSAqLworCQlpZiAoY2FuY2VsX3ByZXNzZWQpCisJ CQlicmVhazsKKworCQkvKgorCQkgKiBEbyBub3QgYXNzdW1lIHRoYXQgdGhlIHNvY2tldCByZW1h aW5zIHRoZSBzYW1lIGFjcm9zcworCQkgKiBQUWNvbm5lY3RQb2xsKCkgY2FsbHMuCisJCSAqLwor CQlzb2NrID0gUFFzb2NrZXQoY29ubik7CisJCWlmIChzb2NrID09IC0xKQorCQkJYnJlYWs7CisK KwkJLyoKKwkJICogSWYgdGhlIHVzZXIgc2VuZHMgU0lHSU5UIGJldHdlZW4gdGhlIGNhbmNlbF9w cmVzc2VkIGNoZWNrLCBhbmQKKwkJICogcG9sbGluZyBvZiB0aGUgc29ja2V0LCBpdCB3aWxsIG5v dCBiZSByZWNvZ25pemVkLiBJbnN0ZWFkLCB3ZSB3aWxsCisJCSAqIGp1c3Qgd2FpdCB1bnRpbCB0 aGUgbmV4dCBzdGVwIGluIHRoZSBjb25uZWN0aW9uIHNlcXVlbmNlIG9yIGZvcmV2ZXIsCisJCSAq IHdoaWNoIG1pZ2h0IHJlcXVpcmUgdXNlcnMgdG8gc2VuZCBTSUdURVJNIG9yIFNJR1FVSVQuCisJ CSAqCisJCSAqIFNvbWUgc29sdXRpb25zIHdvdWxkIGluY2x1ZGUgdGhlICJzZWxmLXBpcGUgdHJp Y2ssIiB1c2luZworCQkgKiBwc2VsZWN0KDIpIGFuZCBwcG9sbCgyKSwgb3IgdXNpbmcgYSB0aW1l b3V0LgorCQkgKgorCQkgKiBUaGUgc2VsZi1waXBlIHRyaWNrIHJlcXVpcmVzIGEgYml0IG9mIGNv ZGUgdG8gc2V0dXAuIHBzZWxlY3QoMikgYW5kCisJCSAqIHBwb2xsKDIpIGFyZSBub3Qgb24gYWxs IHRoZSBwbGF0Zm9ybXMgd2Ugc3VwcG9ydC4gVGhlIHNpbXBsZXN0CisJCSAqIHNvbHV0aW9uIGhh cHBlbnMgdG8ganVzdCBiZSBhZGRpbmcgYSB0aW1lb3V0LCBzbyBsZXQncyB3YWl0IGZvciAxCisJ CSAqIHNlY29uZCBhbmQgY2hlY2sgY2FuY2VsX3ByZXNzZWQgYWdhaW4uCisJCSAqLworCQllbmRf dGltZSA9IHRpbWUoTlVMTCkgKyAxOworCQlyYyA9IFBRc29ja2V0UG9sbChzb2NrLCBmb3JSZWFk LCAhZm9yUmVhZCwgZW5kX3RpbWUpOworCQlpZiAocmMgPT0gLTEpCisJCQlyZXR1cm47CisKKwkJ c3dpdGNoIChQUWNvbm5lY3RQb2xsKGNvbm4pKQorCQl7CisJCQljYXNlIFBHUkVTX1BPTExJTkdf T0s6CisJCQljYXNlIFBHUkVTX1BPTExJTkdfRkFJTEVEOgorCQkJCXJldHVybjsKKwkJCWNhc2Ug UEdSRVNfUE9MTElOR19SRUFESU5HOgorCQkJCWZvclJlYWQgPSB0cnVlOworCQkJCWNvbnRpbnVl OworCQkJY2FzZSBQR1JFU19QT0xMSU5HX1dSSVRJTkc6CisJCQkJZm9yUmVhZCA9IGZhbHNlOwor CQkJCWNvbnRpbnVlOworCQkJY2FzZSBQR1JFU19QT0xMSU5HX0FDVElWRToKKwkJCQlwZ191bnJl YWNoYWJsZSgpOworCQl9CisJfQorCisJcGdfdW5yZWFjaGFibGUoKTsKK30KIAogdm9pZAogY29u bmVjdGlvbl93YXJuaW5ncyhib29sIGluX3N0YXJ0dXApCi0tIApUcmlzdGFuIFBhcnRpbgpOZW9u IChodHRwczovL25lb24udGVjaCkKCg== --009ef093a34329cc595ff44b50674f5daad185512d271459b1407572b54c--