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 1w2tP2-000hlO-1L for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 16:05:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2tP1-00CFd1-0d for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 16:05:47 +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 1w2tP0-00CFcr-2r for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 16:05:46 +0000 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2tOy-00000000xUA-1jwl for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 16:05:46 +0000 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-67bb3a6c6f3so653826eaf.1 for ; Wed, 18 Mar 2026 09:05:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773849942; cv=none; d=google.com; s=arc-20240605; b=Gku0ZCMe9/hkrzKfh5w9z94aRPixbVQyimMvZPx+6tViscGXCND/VET1afpWQkVW7L sX3N7eIT5aAfJvHNNtlDZRn7a/96+GlSJaQYbmLVSL+CEUprY/d6JJ74peRzaCQJMfwj 1VzuUO/k9YPDDrYmpDovjzHgW8Zcds3XVu5OHjdQN6Rx9LarH7XvSyfSYWi2muyO4BzC HVCl1+J+zdsrhFT/AztVKJhmnjR5SjP7FDbwZzDqorOB6HCMwNur2MGWLPaweQvnyxll Cugv6g5BxKGBkexvD/t3QB+HYCa1OWK5hDYKBhR/8ZGpGiGuoH2Iy3pTwe6DvEHyICv6 uW0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=n2vZphdkPL+f7qQT+mAOrnkBXVtAI9teRjTtsxL5FLo=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=DhxydnjFfNN9cL8R0xnc3aMd9mLu/YI6cCNrlWu/KEzEDORd9x32l8n7fhv/YgjFJ5 WvMEoFT+hkKpx9QnA10wNLGihtKq9yAAnbV7BAHK/Mx7HLLW55H6FClINgsE3oWsck+b 1puhRGoibjU5OCIcrZNhmNfqRwROwvBgYlRqrVxkdTeOkSL5w1vzjtrh25oADpFwPvZi v5SJwMEo0/17TVOWg8y8SMCbbBPaoylRjrgEX68fvAHA1mjH+4JJ9ahQ9Ky1zBt7Qeep lfGF7mWNm1YHdmwHkAxPIqdP0y6xyr5JJcPe14DBTCG8XHXq8jyQ/BCoWORZEmowmvJ2 zflQ==; 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=gmail.com; s=20230601; t=1773849942; x=1774454742; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=n2vZphdkPL+f7qQT+mAOrnkBXVtAI9teRjTtsxL5FLo=; b=Vw3sTiQddn0EY1hBYrIISPLxD0bzKTFzde3O18icAqVxS8eoqx+ql8kFGeIG5PyaCH sswbbWdmi/fj77MJM1/X1t8292ym/5g0Y5/b12cwarZoMC5WY5rFOMTHL+PZ/Cd5nhpH VbqNuaApsU95z9U8MuM+c6VIfuy55uoMiIsFl58eSm9Cu5lKRyFc2e90myyhhO7oALTM wKxr3yRrXmTJsFOjb9cnAPGGiYfmASL0PMH5vgIRr1EiXjbIYTdVkhl+tKCQb50U9qpG XpBU16nxSOA1rcfTICIH38dw6Gvhe4fWbHNg6wzrXJ5Oj0wVeEIxjkTvZKdtiaztwDeL uBjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773849942; x=1774454742; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=n2vZphdkPL+f7qQT+mAOrnkBXVtAI9teRjTtsxL5FLo=; b=Htzdh7n2nSc7U0lp3Nkv2w0/K2EYN2edE98419FqlfLe15fug03A74xtROlcnmG6ku fQSutLWAY1VUyQ+CmhXK6q83HDhIAbsZ+/zwM/KBbu0Y68N3s0YukjA6rrfEcZXZXbfl /YruoRT9UPSBGbN+A2+kbf5P2NpNjmhZh2TN/86pMv0YvTaRsVPgkWEyc74JHIPLoupC 63lPh/GB6B4x09R1LIDTZCGJ+xHxV5n3CrMt8dkDdZPatZo8P5uqmVVolQO0+RICDSfM soSqVAJytGijksz67q5nngDFpVDBZZAe2w9vTM6eFmmdX+AWkhBVIeIKfpiZppn2j5qa RRrQ== X-Gm-Message-State: AOJu0YwoTj0Gsk1nStIdZS0bUadra+72ikiRznZyo9e+uu7K78HyfdLP AHdHDaiNyEDljmweWQPI02EYReFl6qBNkaVU9kPfFFYOJ+f7WHPjWFUbiyBeg6mqxYgDfG8j/XH jLuZ5ZUTYrWEu4SGUgO6K0R15jU1gpWZEXJnw X-Gm-Gg: ATEYQzzeBbPcvf2QwfJBc2f2GarPc9GCvJ/HgOZ83dIr5R/5wjPji9JYHFZOiL4g4Wl Rtn2EQY/U6rQ0n85kshF+lKIf66xVhS6owdoGixv7wTW9K5AqdQ6ybojURVZS76vI96TOUsbWpc v/SWzyqEtNd+LThv1hCJLwYSNsz7TGnkxBT6lKUAHeU8etmmZJrT16Mj3UX42Qf1cxDLUewsN+z vma19h52VsOF208yb13frNKKGck2ij28EvL9yZ9KRYa8vpn0pg56Xi4Lle951LSfHEjvbvuXmBI mKfuiVGiY+j6tQev7myFihxcl4LtVUDvslmEaniFfQ== X-Received: by 2002:a05:6820:1792:b0:67b:a85e:6ca5 with SMTP id 006d021491bc7-67c183d529fmr82952eaf.18.1773849941961; Wed, 18 Mar 2026 09:05:41 -0700 (PDT) MIME-Version: 1.0 From: Fujii Masao Date: Thu, 19 Mar 2026 01:05:29 +0900 X-Gm-Features: AaiRm52SzEFP6i0np70O0VYE1cCcSo_OJEp3bRUhzpFAT09senmen_PPCwbWONI Message-ID: Subject: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion? To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000ad48ed064d4e9f1e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ad48ed064d4e9f1e Content-Type: text/plain; charset="UTF-8" Hi, I noticed that during standby promotion the startup process sends SIGUSR1 to the slotsync worker to make it exit. Is there a reason for using SIGUSR1? If the slotsync worker is blocked waiting for input from the primary (e.g., due to a network outage between the primary and standby), SIGUSR1 won't interrupt the wait. As a result, the worker can remain stuck and delay promotion for a long time. Would it make sense to send SIGTERM instead, so the worker can exit promptly even while waiting? I've attached a WIP patch that does this. I haven't updated the source comments yet, but I can do so if we agree on the approach. SIGTERM alone is not sufficient, though. A new slotsync worker could start immediately after the old one exits and block promotion again. To address this, the patch makes a newly started worker exit immediately if promotion is in progress. Thoughts? Regards, -- Fujii Masao --000000000000ad48ed064d4e9f1e Content-Type: application/octet-stream; name="v1-0001-Use-SIGTERM-to-stop-slotsync-worker-during-standb.patch" Content-Disposition: attachment; filename="v1-0001-Use-SIGTERM-to-stop-slotsync-worker-during-standb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmw8g33c0 RnJvbSBjZGNjZTI0MGZjYWJmM2M0ZjkxYWQ2OTMxYjQ1MWJjNzdkYjc2Y2FmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFRodSwgMTkgTWFyIDIwMjYgMDA6NTA6MDcgKzA5MDAKU3ViamVjdDogW1BBVENIIHYxXSBV c2UgU0lHVEVSTSB0byBzdG9wIHNsb3RzeW5jIHdvcmtlciBkdXJpbmcgc3RhbmRieQogcHJvbW90 aW9uCgpQcmV2aW91c2x5LCB3aGVuIHN0YW5kYnkgcHJvbW90aW9uIHdhcyByZXF1ZXN0ZWQsIHRo ZSBzdGFydHVwIHByb2Nlc3Mgc2VudApTSUdVU1IxIHRvIHRoZSBzbG90c3luYyB3b3JrZXIgKG9y IGEgYmFja2VuZCBwZXJmb3JtaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uKQp0byBtYWtlIGl0IGV4 aXQuIFRoaXMgZ2VuZXJhbGx5IHdvcmtlZCwgYnV0IGlmIHRoZSBzbG90c3luYyB3b3JrZXIgd2Fz IGJsb2NrZWQKd2FpdGluZyBmb3IgaW5wdXQgZnJvbSB0aGUgcHJpbWFyeSwgU0lHVVNSMSB3b3Vs ZCBub3QgaW50ZXJydXB0IHRoZSB3YWl0LgpBcyBhIHJlc3VsdCwgdGhlIHdvcmtlciBjb3VsZCBy ZW1haW4gc3R1Y2ssIHByZXZlbnRpbmcgcHJvbW90aW9uIGZyb20KY29tcGxldGluZyBmb3IgYSBs b25nIHRpbWUuCgpUaGlzIGNvbW1pdCBmaXhlcyB0aGUgaXNzdWUgYnkgaGF2aW5nIHRoZSBzdGFy dHVwIHByb2Nlc3Mgc2VuZCBTSUdURVJNCmluc3RlYWQgb2YgU0lHVVNSMSwgYWxsb3dpbmcgdGhl IHNsb3RzeW5jIHdvcmtlciAob3IgYmFja2VuZCkgdG8gZXhpdCBwcm9tcHRseQpldmVuIHdoaWxl IHdhaXRpbmcgZm9yIGlucHV0LgoKQWRkaXRpb25hbGx5LCBuZXcgc2xvdHN5bmMgd29ya2VyIGNv dWxkIGxhdW5jaCBpbW1lZGlhdGVseSBhZnRlciB0aGUgb2xkIG9uZQp3YXMgdGVybWluYXRlZCwg d2hpY2ggY291bGQgYWdhaW4gYmxvY2sgcHJvbW90aW9uLiBUbyBwcmV2ZW50IHRoaXMsIGEgc2xv dHN5bmMKd29ya2VyIHRoYXQgc3RhcnRzIHVwIGR1cmluZyBwcm9tb3Rpb24gbm93IGRldGVjdHMg dGhpcyBjb25kaXRpb24gYW5kIGV4aXRzCmltbWVkaWF0ZWx5LgoKVGhpcyBlbnN1cmVzIHRoYXQg c3RhbmRieSBwcm9tb3Rpb24gaXMgbm90IGRlbGF5ZWQgYnkgc3R1Y2sgb3IgbmV3bHkgc3RhcnRl ZApzbG90c3luYyB3b3JrZXJzLgotLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv c2xvdHN5bmMuYyB8IDI5ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc2xvdHN5bmMuYwppbmRleCBlNzVkYjY5ZTNmNi4uM2QxOGZmNGE2NmUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTEyOTgsMjcgKzEy OTgsNiBAQCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHZvaWQpCiB7CiAJQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKTsKIAotCWlmIChTbG90U3luY0N0eC0+c3RvcFNpZ25hbGVkKQotCXsKLQkJaWYg KEFtTG9naWNhbFNsb3RTeW5jV29ya2VyUHJvY2VzcygpKQotCQl7Ci0JCQllcmVwb3J0KExPRywK LQkJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmNocm9uaXphdGlvbiB3b3JrZXIgd2ls bCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIpKTsKLQotCQkJcHJvY19leGl0 KDApOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJLyoKLQkJCSAqIEZvciB0aGUgYmFja2VuZCBleGVj dXRpbmcgU1FMIGZ1bmN0aW9uCi0JCQkgKiBwZ19zeW5jX3JlcGxpY2F0aW9uX3Nsb3RzKCkuCi0J CQkgKi8KLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9U X0lOX1BSRVJFUVVJU0lURV9TVEFURSksCi0JCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBz eW5jaHJvbml6YXRpb24gd2lsbCBzdG9wIGJlY2F1c2UgcHJvbW90aW9uIGlzIHRyaWdnZXJlZCIp KTsKLQkJfQotCX0KLQogCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQogCQlzbG90c3luY19yZXJl YWRfY29uZmlnKCk7CiB9CkBAIC0xNDI3LDYgKzE0MDYsMTIgQEAgY2hlY2tfYW5kX3NldF9zeW5j X2luZm8ocGlkX3Qgc3luY19wcm9jZXNzX3BpZCkKIHsKIAlTcGluTG9ja0FjcXVpcmUoJlNsb3RT eW5jQ3R4LT5tdXRleCk7CiAKKwlpZiAoU2xvdFN5bmNDdHgtPnN0b3BTaWduYWxlZCkKKwl7CisJ CVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNDdHgtPm11dGV4KTsKKwkJcHJvY19leGl0KDApOwor CX0KKwogCWlmIChTbG90U3luY0N0eC0+c3luY2luZykKIAl7CiAJCVNwaW5Mb2NrUmVsZWFzZSgm U2xvdFN5bmNDdHgtPm11dGV4KTsKQEAgLTE3NTIsNyArMTczNyw3IEBAIFNodXREb3duU2xvdFN5 bmModm9pZCkKIAkgKiBkZXRlY3RpbmcgdGhhdCB0aGUgc3RvcFNpZ25hbGVkIGZsYWcgaXMgc2V0 IHRvIHRydWUuCiAJICovCiAJaWYgKHN5bmNfcHJvY2Vzc19waWQgIT0gSW52YWxpZFBpZCkKLQkJ a2lsbChzeW5jX3Byb2Nlc3NfcGlkLCBTSUdVU1IxKTsKKwkJa2lsbChzeW5jX3Byb2Nlc3NfcGlk LCBTSUdURVJNKTsKIAogCS8qIFdhaXQgZm9yIHNsb3Qgc3luYyB0byBlbmQgKi8KIAlmb3IgKDs7 KQotLSAKMi41MS4yCgo= --000000000000ad48ed064d4e9f1e--