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 1vwreJ-000SO2-0x for pgpool-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 01:00:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwreI-00EXoU-00 for pgpool-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 01:00:38 +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 1vwreH-00EXoN-2H for pgpool-hackers@lists.postgresql.org; Mon, 02 Mar 2026 01:00:37 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vwreE-00000002323-0ooc for pgpool-hackers@lists.postgresql.org; Mon, 02 Mar 2026 01:00:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:From:Subject:To:Message-Id:Date:Sender:Reply-To:Cc:Content-ID: Content-Description:In-Reply-To:References; bh=3VaZeGJnH5cNNH/HukRnxT9G0DYW0xPaPcaC9iRULGE=; b=UvYaFjGAZ87FlRBeyVoSi/sIDg tD67UIA7E0PBuszDd7gSgJ7Z4hpy47bVQ1c9yzxEne8EAORsvgoTLODvrXnJfdvxh0G7nO9/VhR/z kUZ7SzaqTpRBAMh4FI6BI0CFnMiNpaulEXErUtwc7a1h+x8oc9FJ7L5yhNS/lOHEFp5vzCOILBnkA mpXrGC8dlE5Gmj6fD7UXq/PDSc7IpZ32eDGSyMFX4FJBYEGfq7xeSjkKN8LNWNVIvUIX0GsjGMhLi 5wJ2OcKPPDePMtsV4XfEUABYx3qNcXyZAzRd7gcPx0/pcslaxiclCVl4N0cdbTpNEzdlMO1Qtl5f2 ReH41fnA==; Received: from [2409:11:4120:300:f4cb:47e0:aeeb:6464] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwreB-005Nw7-30 for pgpool-hackers@lists.postgresql.org; Mon, 02 Mar 2026 01:00:34 +0000 Date: Mon, 02 Mar 2026 10:00:28 +0900 (JST) Message-Id: <20260302.100028.1346768433787074248.ishii@postgresql.org> To: pgpool-hackers@lists.postgresql.org Subject: Close listening socokets before forking From: Tatsuo Ishii X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Mar__2_10_00_28_2026_368)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:f4cb:47e0:aeeb:6464 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Mon_Mar__2_10_00_28_2026_368)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Currently when pgpool main process forks sub processes (child process - user session process, pcp_main process, health check process, streaming replication check process and life check process), they inherits pgpool and pcp listening sockets. However some of processes do not need those sockets: - child process - pcp sockets are unnecessary - pcp main process - pgpool sockets are unnecessary - health check, streaming replication check and life check process - pgpool and pcp sockets are unnecessary It could be potential problem when those process go down. Since they may keep the listening sockets for a while, which prevents next pgpool starting up from binding those ports. Attached patch closes those unnecessary sockets after forking. For this purpose new function close_listening_sockets() is introduced. Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp ----Next_Part(Mon_Mar__2_10_00_28_2026_368)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="close_socks.patch" ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvb2wuaCBiL3NyYy9pbmNsdWRlL3Bvb2wuaAppbmRl eCBlYTZmODdlMTIuLjY1OTA3ZGNmMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9vbC5oCisr KyBiL3NyYy9pbmNsdWRlL3Bvb2wuaApAQCAtNCw4ICs0LDggQEAKICAqIHBncG9vbDogYSBsYW5n dWFnZSBpbmRlcGVuZGVudCBjb25uZWN0aW9uIHBvb2wgc2VydmVyIGZvciBQb3N0Z3JlU1FMCiAg KiB3cml0dGVuIGJ5IFRhdHN1byBJc2hpaQogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MjAwMy0yMDI1CVBnUG9vbCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLSAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDAzLTIwMjYJUGdQb29sIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIFBl cm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdh cmUgYW5kCkBAIC03MDksNiArNzA5LDE1IEBAIGV4dGVybiBib29sIHBvb2xfYWNxdWlyZV9mb2xs b3dfcHJpbWFyeV9sb2NrKGJvb2wgYmxvY2ssIGJvb2wgcmVtb3RlX3JlcXVlcyk7CiBleHRlcm4g dm9pZCBwb29sX3JlbGVhc2VfZm9sbG93X3ByaW1hcnlfbG9jayhib29sIHJlbW90ZV9yZXF1ZXMp OwogZXh0ZXJuIHZvaWQgcG9vbF9zaWduYWxfbG9ncm90YXRlKHZvaWQpOwogCisvKgorICogQ2xv c2UgbGlzdGVuaW5nIHNvY2tldHMKKyAqIGZvbGxvd2luZyBkZWZpbmVzIGFyZSBmb3IgImtpbmQi IHBhcmFtLgorICovCisjZGVmaW5lIFBPT0xfQ0xPU0VfUEdQT09MX0xJU1RFTklOR19TT0NLUwkw eDAxCS8qIHBncG9vbCBzb2NrZXRzICovCisjZGVmaW5lIFBPT0xfQ0xPU0VfUENQX0xJU1RFTklO R19TT0NLUwkJMHgwMgkvKiBwY3Agc29ja2V0cyAqLworZXh0ZXJuIHZvaWQgY2xvc2VfbGlzdGVu aW5nX3NvY2tldHMoaW50IGtpbmQpOworCisKIC8qIHN0cmxjcHkuYyAqLwogI2lmbmRlZiBIQVZF X1NUUkxDUFkKIGV4dGVybiBzaXplX3Qgc3RybGNweShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNy Yywgc2l6ZV90IHNpeik7CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9wZ3Bvb2xfbWFpbi5jIGIvc3Jj L21haW4vcGdwb29sX21haW4uYwppbmRleCBmYTA1ZTE1ZTcuLmJmN2M0NTJlMiAxMDA2NDQKLS0t IGEvc3JjL21haW4vcGdwb29sX21haW4uYworKysgYi9zcmMvbWFpbi9wZ3Bvb2xfbWFpbi5jCkBA IC0yMTIsNiArMjEyLDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrYWRkcl91biAqcGNwX3VuX2FkZHJz OwkvKiB1bml4IGRvbWFpbiBzb2NrZXQgcGF0aCBmb3IgUENQICovCiBQcm9jZXNzSW5mbyAqcHJv Y2Vzc19pbmZvID0gTlVMTDsJLyogUGVyIGNoaWxkIGluZm8gdGFibGUgb24gc2htZW0gKi8KIHZv bGF0aWxlIFVzZXIxU2lnbmFsU2xvdCAqdXNlcjFTaWduYWxTbG90ID0gTlVMTDsJLyogVXNlciAx IHNpZ25hbCBzbG90IG9uCiAJCQkJCQkJCQkJCQkJICogc2htZW0gKi8KKwogaW50CQkJY3VycmVu dF9jaGlsZF9wcm9jZXNzX2NvdW50OwogCiAvKgpAQCAtODE1LDYgKzgxNiw5IEBAIHBjcF9mb3Jr X2FfY2hpbGQoaW50ICpmZHMsIGNoYXIgKnBjcF9jb25mX2ZpbGUpCiAJCW9uX2V4aXRfcmVzZXQo KTsKIAkJU2V0UHJvY2Vzc0dsb2JhbFZhcmlhYmxlcyhQVF9QQ1ApOwogCisJCS8qIGNsb3NlIHBn cG9vbCBsaXN0ZW5pbmcgc29ja2V0cyAqLworCQljbG9zZV9saXN0ZW5pbmdfc29ja2V0cyhQT09M X0NMT1NFX1BHUE9PTF9MSVNURU5JTkdfU09DS1MpOworCiAJCWNsb3NlKHBpcGVfZmRzWzBdKTsK IAkJY2xvc2UocGlwZV9mZHNbMV0pOwogCkBAIC04NjIsNiArODY2LDkgQEAgZm9ya19hX2NoaWxk KGludCAqZmRzLCBpbnQgaWQpCiAKIAkJU2V0UHJvY2Vzc0dsb2JhbFZhcmlhYmxlcyhQVF9DSElM RCk7CiAKKwkJLyogY2xvc2UgcGNwIGxpc3RlbmluZyBzb2NrZXRzICovCisJCWNsb3NlX2xpc3Rl bmluZ19zb2NrZXRzKFBPT0xfQ0xPU0VfUENQX0xJU1RFTklOR19TT0NLUyk7CisKIAkJLyogY2Fs bCBjaGlsZCBtYWluICovCiAJCVBPT0xfU0VUTUFTSygmVW5CbG9ja1NpZyk7CiAJCWhlYWx0aF9j aGVja190aW1lcl9leHBpcmVkID0gMDsKQEAgLTkwOSw2ICs5MTYsMTQgQEAgd29ya2VyX2Zvcmtf YV9jaGlsZChQcm9jZXNzVHlwZSB0eXBlLCB2b2lkICgqZnVuYykgKHZvaWQgKiksIHZvaWQgKnBh cmFtcykKIAogCQlTZXRQcm9jZXNzR2xvYmFsVmFyaWFibGVzKHR5cGUpOwogCisJCS8qCisJCSAq IENsb3NlIHBncG9vbCBsaXN0ZW5pbmcgc29ja2V0cyBhbmQgcGNwIGxpc3RlbmluZyBzb2NrZXRz IGlmIHRoZXkKKwkJICogYXJlIGFscmVhZHkgc2V0dXAuIFRoZXkgYXJlIG5vdCBuY2Vzc2FyeSBm b3Igd29rZXIgcHJvY2VzcyAoaGVhbHRoCisJCSAqIGNoZWNrIGFuZCBzdHJlYW1pbmcgcmVwbGlj YXRpb24gY2hlY2sgcHJvY2VzcykuCisJCSAqLworCQljbG9zZV9saXN0ZW5pbmdfc29ja2V0cyhQ T09MX0NMT1NFX1BHUE9PTF9MSVNURU5JTkdfU09DS1MgfAorCQkJCQkJCQlQT09MX0NMT1NFX1BD UF9MSVNURU5JTkdfU09DS1MpOworCiAJCWVyZXBvcnQoTE9HLAogCQkJCShlcnJtc2coInByb2Nl c3Mgc3RhcnRlZCIpKSk7CiAKQEAgLTUyMjcsMyArNTI0MiwyNSBAQCBzZWxlY3RfdmljdGltX3By b2Nlc3NlcyhpbnQgKnByb2Nlc3NfaW5mb19pZHhzLCBpbnQgY291bnQpCiAJfQogCXJldHVybiBz ZWxlY3RlZF9jb3VudDsKIH0KKworLyoKKyAqIENsb3NlIGFsbCBsaXN0ZW5pbmcgc29ja2V0cwor ICoKKyAqIGtpbmQgYml0bWFwIHNwZWNpZmllcyB3aGljaCBsaXN0ZW5pbmcgc29ja2V0cyB0byBi ZSBjbG9zZWQuCisgKi8KK3ZvaWQKK2Nsb3NlX2xpc3RlbmluZ19zb2NrZXRzKGludCBraW5kKQor eworCWludAkJCWk7CisKKwlpZiAoa2luZCAmIFBPT0xfQ0xPU0VfUEdQT09MX0xJU1RFTklOR19T T0NLUyAmJiBmZHMgIT0gTlVMTCkKKwl7CisJCWZvciAoaSA9IDA7IGZkc1tpXSA+IDA7IGkrKykK KwkJCWNsb3NlKGZkc1tpXSk7CisJfQorCWlmIChraW5kICYgUE9PTF9DTE9TRV9QQ1BfTElTVEVO SU5HX1NPQ0tTICYmIHBjcF9mZHMgIT0gTlVMTCkKKwl7CisJCWZvciAoaSA9IDA7IHBjcF9mZHNb aV0gPiAwOyBpKyspCisJCQljbG9zZShwY3BfZmRzW2ldKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9z cmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMgYi9zcmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMK aW5kZXggODZjYWY5YjRiLi5hNjk1OGEzOTUgMTAwNjQ0Ci0tLSBhL3NyYy93YXRjaGRvZy93ZF9s aWZlY2hlY2suYworKysgYi9zcmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMKQEAgLTYsNyArNiw3 IEBACiAgKiBwZ3Bvb2w6IGEgbGFuZ3VhZ2UgaW5kZXBlbmRlbnQgY29ubmVjdGlvbiBwb29sIHNl cnZlciBmb3IgUG9zdGdyZVNRTAogICogd3JpdHRlbiBieSBUYXRzdW8gSXNoaWkKICAqCi0gKiBD b3B5cmlnaHQgKGMpIDIwMDMtMjAyNQlQZ1Bvb2wgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNglQZ1Bvb2wgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUg dGhpcyBzb2Z0d2FyZSBhbmQKICAqIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBh bmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5CkBAIC0zNjcsNiArMzY3LDEwIEBAIGZvcmtfbGlmZWNo ZWNrX2NoaWxkKHZvaWQpCiAJCW9uX2V4aXRfcmVzZXQoKTsKIAkJU2V0UHJvY2Vzc0dsb2JhbFZh cmlhYmxlcyhQVF9MSUZFQ0hFQ0spOwogCisJCS8qIGNsb3NlIHBncG9vbC9wY3AgbGlzdGVuaW5n IHNvY2tldHMgKi8KKwkJY2xvc2VfbGlzdGVuaW5nX3NvY2tldHMoUE9PTF9DTE9TRV9QR1BPT0xf TElTVEVOSU5HX1NPQ0tTIHwKKwkJCQkJCQkJUE9PTF9DTE9TRV9QQ1BfTElTVEVOSU5HX1NPQ0tT KTsKKwogCQkvKiBjYWxsIGxpZmVjaGVjayBjaGlsZCBtYWluICovCiAJCVBPT0xfU0VUTUFTSygm VW5CbG9ja1NpZyk7CiAJCWxpZmVjaGVja19tYWluKCk7Cg== ----Next_Part(Mon_Mar__2_10_00_28_2026_368)----