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 1w7sCK-005mYn-07 for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 09:49:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7sCI-00GVH6-1X for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 09:49:14 +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 1w7sCH-00GVGy-34 for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 09:49:14 +0000 Received: from mail-ot1-x32c.google.com ([2607:f8b0:4864:20::32c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w7sCG-000000027MX-1ym2 for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 09:49:13 +0000 Received: by mail-ot1-x32c.google.com with SMTP id 46e09a7af769-7d7eb85fb81so6547311a34.0 for ; Wed, 01 Apr 2026 02:49:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775036951; cv=none; d=google.com; s=arc-20240605; b=OyFmCkcmNY7tTt3/UEA9WDZSNEGy0ymA3UCsei7Jxc4hkxD1o8oxVpCar47KFK/hUz tiFGGQvWrgC5l2ggTFHgtcOPiJ2zIEaiWN6JixmiUdYgv3BKnu+hjeE+q9Bfo6tFaEzw vx4cL1ySyaQzjhFM5baPTeJ4biJzLkKVL0SIiouTCWI5snDKxAqTldFTsJlvBUOJIq4E qfwCXwJnW3DZxMyWpuTEU38ImwJhjOiqoT0ob3HCJEMJ7XZQb0zaDVUXcj1F6Kg8SoS1 yv0amqixLhm/TgMfX9NiBC1tPQHsKuNR/JUdO26PjSGoIQHvJg9/GPdpiyQl3JjzOTwq eryg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=SiuwUlRvyfbc6hnVW7AXhL+zo2m/N+JEO5nQNToEKxc=; fh=JKUCT5XtxUcqJU2BzMk8QzKS8IFTwA6Vtmq7sevcpIc=; b=JjegszCynSUbBOXVzXR1PmstNekSzRxOCRJ8fhbin+xM0LgCzPHfJgdj3LYRRMIZC3 xxDpy/rJIIRdHdb2wQkPOymtEig7kKVxxPGl7FATgqi0SFhFJgUa29adFcK+H7hRhXo/ JZ0wEUqRI+ab7vcxCRwA97URblxaINRE2IK6IsQtIu1GKo2i3c2H61FJONkQjtufFVPp 5VEGeGZn/MIil5+CwBkjZ4V6NaIGhqQQ8n9vdZrhXPLfr5JMZ3ChSZOP9l/vJSrkkSEw Wgsw0223xaGEpqVt8lYWHwk57PEX0vl9NFBDrustZq0fpKOh9/YTxUdf4EJyoBrvA9nx Uazg==; 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=20251104; t=1775036951; x=1775641751; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=SiuwUlRvyfbc6hnVW7AXhL+zo2m/N+JEO5nQNToEKxc=; b=XBUkw3JcP5KzaQUF0F9dHvuJtrHfwAv1fvdgcyPG/Nom0cMzDRZEPM/+hFUR+Y1YjP KsMUMgoY31zna842ui3vkn7Q3Y5US52Qj2xa6gkB1bovYprLjUNzuijstVL4vO6bzK1l yoqhELxjAwQc3opMl8w0qrvK1di+p4HUZH9PNWw7RXeIL3BKqKUBWGkVckFcx8Z0AnPL IAjGfscoKUZJBgdcp3cxN1N6oT7je+rDUi2ykq4v9LtFfW25kRvGS13CBCS6QEe7w7a8 Or7bpjljKyp/7Htcgdk/Sd+dnb0AzLVoGwf+52MunN/9mgXUjx5DHN8/Ov48EnKskOv1 wQ6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775036951; x=1775641751; h=content-transfer-encoding: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=SiuwUlRvyfbc6hnVW7AXhL+zo2m/N+JEO5nQNToEKxc=; b=AVag7wCHP02L9+2Szk6QaFKF6h5Guy0+AO+KY+5i+25n3lBdH01rqEHfPWW7z7ByAN 2qIxPOcjMeT6PsQpSI4Bpi2OVawa2A5scjBgtuQhVIrf0Tm8k6x4q/a9NDPiyKAkLntO 4rnhb9CwxfXcFJYCS7sANKk4WAr0fQFfWOOyoS4rH6rnQXu4IEs7lESCZautEZDQWLNn dB1Yxol5eVlvJWpsezYpIctAotyuDzj6AqUI4t3TQPElzXv4555m5PyPodw9o5y9tFcD UMywGbNgpilZhNYnFbnZ2VClmmcvob6GPI3NeZL6AzACzblitY1GldILYSZX4KNd1fbC 8qmg== X-Forwarded-Encrypted: i=1; AJvYcCVE40uEpANHFiGrMjoE6zHdJwrKa6XVYUUJ4u79oRtEY/qvrFwb2iFgDOAc3mQMeqMQ4JuLBjpKeWMCH+AD@lists.postgresql.org X-Gm-Message-State: AOJu0YzuPOD13Yls1LWzITfb2U5PIr8GttzRuayrrysgiOqrC6Dvcssh CmX1vgaKg8GebcaryKFiN4hoVw9h4dY8EpaSEBE2C1yzcway0Pn+udAsTfRb3Dd3ANdMm+bxEJB eHLxr0fezpz4u1ZyWF7JgT+UG+7DYbQs= X-Gm-Gg: ATEYQzz6fQKla50K2QREe4sFyc6Et7MkXGODwdxJuftLAouOoLz6WHC/h8WVKyXomJt JQ9jSl6VqVeW0vqkfEJMdzfg+fPv2wjsLdD1Xtrol1EYknO42mqcOcV0TC2V0EdxQkcyx8zV++B WCiBHHbULkDd0i9ltGF1JgkPgTVsZ9aGb/rX5du7oJQh+lMOjbepI1fLUZmFOmsbh+A7PE2IoAo PZrncqN1I6B8j6Rxcy6JIRa5EeBGxfSGchYJMDzq/HFNxa32atdOXkbUYsvnj4WbXKZok8rGy3n SCX7KeSccAItt6wKjOGFKghoPmS2LQWqvCOazyo= X-Received: by 2002:a05:6820:4df4:b0:67e:3e13:3301 with SMTP id 006d021491bc7-67fabcf5391mr1345040eaf.47.1775036951383; Wed, 01 Apr 2026 02:49:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Fujii Masao Date: Wed, 1 Apr 2026 18:48:59 +0900 X-Gm-Features: AQROBzD4bg3KWQ0cZeQMYoMH6TN5ERyJYtSDDsnk6Lua8Tny5bPkgAIryD6YU6E Message-ID: Subject: Re: Use SIGTERM instead of SIGUSR1 for slotsync worker to exit during promotion? To: Nisha Moond Cc: "Zhijie Hou (Fujitsu)" , shveta malik , Amit Kapila , PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Apr 1, 2026 at 2:34=E2=80=AFPM Nisha Moond wrote: > > On Tue, Mar 31, 2026 at 3:56=E2=80=AFPM Zhijie Hou (Fujitsu) > wrote: > > > > On Tuesday, March 31, 2026 2:02 PM Nisha Moond wrote: > > > > > > > > > Please find the updated patch (v6) attached. > > > > Thanks for updating the patch. One minor comment: > > > > I think we could avoid interrupting and reporting an ERROR when > > IsSyncingReplicationSlots() returns false to avoid reporting ERROR unne= cessarily > > when the slotsync has already finished. > > > > Thanks for the review. Fixed above in v7. Thanks for updating the patch! It looks good to me, with just a few minor p= oints . If those are addressed, I'd like to push it. + * a new worker (or a new API call) that starts after the old worker was "API" feels a bit vague. It might be clearer to explicitly say "pg_sync_replication_slots()". + PROCSIG_SLOTSYNC_MESSAGE, /* ask slotsync worker/API to stop */ "API" here also feels a bit vague. So I'd like to use "ask slot synchroniza= tion to stop" as the comment, instead. + * We cannot rely solely on 'stopSignaled' here because: + * 1) It resides in shared memory and is visible to all processes, so chec= king + * it directly in ProcessInterrupts() would require additional checks t= o + * ensure only the synchronizing process acts on it. + * 2) It has different lifetime semantics and cannot be reset after handli= ng, + * as it also guards against postmaster and promotion race conditions. + * 3) Accessing it requires acquiring a spinlock, which can be too expensi= ve + * or undesirable for every ProcessInterrupts() call. Now that PROCSIG_SLOTSYNC_MESSAGE is in place, using SlotSyncShutdownPendin= g is intuitive. So it seems more useful to explain why stopSignaled is still needed rather than why SlotSyncShutdownPending is used (i.e., why stopSigna= led is not sufficient). Since that rationale is already covered in the SlotSync= Ctx comments, I'd suggest removing this comment block. As for backpatching, this looks like it should go back to v17, where slotsy= nc was introduced. Thought? Regards, --=20 Fujii Masao