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 1wHJoL-0073Xy-1L for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Apr 2026 11:07:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wHJoK-00DflI-23 for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Apr 2026 11:07:32 +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 1wHJoK-00Dfl2-0d for pgsql-hackers@lists.postgresql.org; Mon, 27 Apr 2026 11:07:32 +0000 Received: from mail-yx1-xb12c.google.com ([2607:f8b0:4864:20::b12c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wHJoH-0000000318G-4157 for pgsql-hackers@lists.postgresql.org; Mon, 27 Apr 2026 11:07:31 +0000 Received: by mail-yx1-xb12c.google.com with SMTP id 956f58d0204a3-656d749109cso1287224d50.3 for ; Mon, 27 Apr 2026 04:07:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777288049; cv=none; d=google.com; s=arc-20240605; b=QktTAD2o3RRngecoJ7gtxsmU1xTA1jBm9t9Myw9XKdRPHj/vy6a+cS2ioL9IoELCmK +JMruFW1QU22nevLb+tPqNlDfkju69ZsXGDUL9tHGRki24YsYYEyCDyi9fbYx6RyUq4l /zOMts5xqjS4S6VRcXszgj88iC+KeMTZ5I5uf/fCtFJ5LhnVg2ocQbQq+K0dewrRIqFB kVnD+GfIJNYAtQ0A5ByVUSWif4NS+Otq9cDPts8ZzQwSdz6hVJkjBzsd7GMwb8bMPaEX +loElY7NBYA+fA5v/1bePEwSBesPSG7X1p3169uOE+Zqtj8iJ0UJOQeKODhcdYCn37m0 hdow== 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=DX6yJF+oTuC28SZeXl7jPIbfeXlZwVWtm0g0yJFybPg=; fh=9DqUT/RjGfLBqLoY8WZJN0CqJ3pnZqb2HhFfDSX1zss=; b=epB+5GSKIsAPJ/zRuvlvOog5yJ+n3neCZ7MjUmsobLx3JnMQcwENGn0KcSBYK6uS7W G5J+YUJ31Ug9q69B+I5wM6vVw7II8ZALm7aCItbYgWNSmPWi9AzYuH+i3oF2i5XIoULa 9gwRR3MncMQkFroup4Vg2z5ltVk+AvyNGSegArc9p2k13m+VZoNUL4GIi3+8VpwDCLLB SQVnyoCDc+9X5M9lMcCRNOxsjcYuoL84SMqMq1sPHIK24EslSrxN8479bTz5dVH0SGdP /Q6kcYy0PWrYDk9k0ILUO7iR/kzIq9Q4shBsaSix/9t4wzWp02N09X73ZjyHIRItyUfz J5cw==; 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=1777288049; x=1777892849; 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=DX6yJF+oTuC28SZeXl7jPIbfeXlZwVWtm0g0yJFybPg=; b=nUzPss5YmGY5T+VXre5CfDxxG4L3nP99SRkI1iU5RfU7eTJCGVvhwsPboGLLxoYpEe Z8lkfKboTapa4mUtEuW/omXwIcQE29qJ0Y8jqzOGb7axreqW8vmZMV3jspFm51o4nwie UJE/O8BJbZF6ZeB17fpc8MI1q6Pd3qchM0pFCMOsKX3FrX+S6PXWvGgxlM3NizWhpbQG ZVNTYlGD1BP+Q/L2uiSE1c0Cwo4Mla9K3uPTdHiu1uqKnXorw9XtcTDJR3nuF6mqsq+o /3KM4x35mv3N/jeC8YFvzoiKmz72cUkR1kkOHJ6JFkt/XRnNHCZumVjHMh8MUxfD01mJ j4FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777288049; x=1777892849; 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=DX6yJF+oTuC28SZeXl7jPIbfeXlZwVWtm0g0yJFybPg=; b=YwMjEeRNji+2Gw2Irgar81lSor1DJRH55SWWfVKzDUDO+Ffw3STMN9JxLlzN9iOkB/ mGPxAvzyo8q/TymcGPH0rBYMwv2xsnZOYIXhZwoYjT13/beefcbaZ9ytWAGSgjE+thkR v31wm3q1/cGSHy8+FpM+si60+LBZ6wIyy7iUmOl6PZMZlNzD0J6/G0x+gYo5MEJcuntT oCK0O9POEMAP1UqZDz/mP+1gq0UAhXu+FHU2MArhkDlI2arEUl+S34AzgSokgcESLVOZ OoyXnGqUsgwauATp628skTqLL+9WRk582PVAE3u2Mt9aIfyeLacqQV2q2jz3lG6JK0bW FTpA== X-Forwarded-Encrypted: i=1; AFNElJ9sQ33K8LRJuI8oEnba48mOEsysRHyAI9Z8cJYOF4GuEeSvsoJIIwi6MC/wGKQA3Y3VioQ5XSCdrO7thuJ9@lists.postgresql.org X-Gm-Message-State: AOJu0YyLDV58Rxz0TiF4vztIHDMrs76nlilyNmTeJolijsL3AVg4ytCI xWMxEpoEl/knfwhlHAXrkNM+q9Awo/ZU36hPyQy7ztSGSqqNu1XkvqDvg/JZ7bVlf8oGqWx1o08 xgoENZfl1voT50Y/6zcMtE4Q5nK8vWD0= X-Gm-Gg: AeBDieuN9aQwOFIBx1GUJNVZ3RwrLMnEPBpqOFRZJWbdDRzVMGw9Y8Vh0bixEszhYVk QxW5JINzMaUOS8qQ0AydZ8lk0hUYxKwc5XVZA1Rdux83nIL7QwZ6S46WUeiRNydNeXZ1xN1a0Mr FXgFXhdRTKTR2UbxFnRQfO47b5EBxkpDGHUQRKUQzo568BVVdQ7qwqE/sgmVjDnastIrjEPfhQB 881/Dbw/Myjg9sCysylhamCo7aqzTY7L1irJV5KsnZ62vUK+joq+rpT22jQ4Nn2W+QtEHZeg8hy 8iinZOwNb07u5HHq+qXBgu8B9JvJWHPDr1e4gT92gCS4Xk8nx+H2gVdFkPGZ X-Received: by 2002:a05:690e:1a82:b0:650:18e3:d917 with SMTP id 956f58d0204a3-653109fa086mr29545498d50.41.1777288049410; Mon, 27 Apr 2026 04:07:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: JoongHyuk Shin Date: Mon, 27 Apr 2026 20:07:17 +0900 X-Gm-Features: AQROBzCDUhObkKoXo3s4_teFKnGw9LVHEukUSR160LEE0LtpDMWTshEwzWtcyjs Message-ID: Subject: Re: [PATCH] Prevent repeated deadlock-check signals in standby buffer pin waits To: Michael Paquier Cc: Fujii Masao , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/mixed; boundary="000000000000d97b7006506f1e61" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d97b7006506f1e61 Content-Type: multipart/alternative; boundary="000000000000d97b6f06506f1e5f" --000000000000d97b6f06506f1e5f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for the review. v2 attached, with the suggested initialization added for symmetry. Agreed this is an improvement rather than a bug fix, so I've updated the CF tag to Performance accordingly. I also verified the fix locally on a primary-standby setup, using the buffer-pin conflict scenario from src/test/recovery/t/ 031_recovery_conflict.pl (aborted INSERT + cursor on standby + VACUUM FREEZE on primary). On master, strace showed 9 SIGUSR1 broadcasts to the conflicting backend over a 10-second window (one per deadlock_timeout). With the patch applied, only 1 broadcast over the same window. Patch attached. -- JoongHyuk Shin On Tue, Apr 21, 2026 at 2:55=E2=80=AFPM Michael Paquier wrote: > On Tue, Apr 21, 2026 at 02:42:38PM +0900, Fujii Masao wrote: > > Since this change improves recovery-conflict behavior rather than fixin= g > a bug, > > it doesn't seem to need backpatching and we may need to wait until v20 > > development opens (probably July) before committing it. > > Yeah, this one is an improvement, not an actual bug, so let's wait for > v20 if worth doing (I did not check it). > -- > Michael > --000000000000d97b6f06506f1e5f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the review.
v2 attached, with the suggested = initialization added for symmetry.

Agreed this is an improvement rat= her than a bug fix,
so I've updated the CF tag to Performance accord= ingly.

I also verified the fix locally on a primary-standby setup,using the buffer-pin conflict scenario from src/test/recovery/t/031_recovery_conflict.pl
(abort= ed INSERT + cursor on standby + VACUUM FREEZE on primary).
On master, st= race showed 9 SIGUSR1 broadcasts to the conflicting backend
over a 10-se= cond window (one per deadlock_timeout).
With the patch applied, only 1 b= roadcast over the same window.

Patch attached.

--
JoongHyu= k Shin

--000000000000d97b6f06506f1e5f-- --000000000000d97b7006506f1e61 Content-Type: application/octet-stream; name="v2-0001-Prevent-repeated-deadlock-check-signals-in-standb.patch" Content-Disposition: attachment; filename="v2-0001-Prevent-repeated-deadlock-check-signals-in-standb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moh32ao90 RnJvbSBlNzBhMmZjNzRhNjNkNGMxZTNkMTI3N2UyN2EzN2IxZTI2NzEwZmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb29uZ0h5dWsgU2hpbiA8c2poOTEwODA1QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAxNyBBcHIgMjAyNiAxNjo1ODozMSArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjJd IFByZXZlbnQgcmVwZWF0ZWQgZGVhZGxvY2stY2hlY2sgc2lnbmFscyBpbiBzdGFuZGJ5IGJ1ZmZl cgogcGluIHdhaXRzCgpBZnRlciBzZW5kaW5nIFJFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTl9E RUFETE9DSywgdGhlIHN0YXJ0dXAgcHJvY2VzcwpyZXR1cm5lZCB3aXRob3V0IHdhaXRpbmcsIHNv IHRoZSBjYWxsZXIncyBsb29wIHdvdWxkIGZpcmUgYW5vdGhlcgpkZWFkbG9ja190aW1lb3V0IGFu ZCByZS1zZW5kIHRoZSBzaWduYWwgZXZlcnkgaW50ZXJ2YWwuICBUaGlzIGFkZGVkCnVubmVjZXNz YXJ5IG92ZXJoZWFkIGluIGJvdGggdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbmQgYmFja2VuZHMuCgpG aXggYnkgYWRkaW5nIGEgUHJvY1dhaXRGb3JTaWduYWwoKSBjYWxsIGFmdGVyIHRoZSBkZWFkbG9j ay1jaGVjawpzaWduYWwsIG1pcnJvcmluZyB0aGUgYXBwcm9hY2ggYWxyZWFkeSB1c2VkIGluIHRo ZSBsb2NrLWNvbmZsaWN0IHBhdGgKKGNvbW1pdCA4OTAwYjVhOWQ1OWEpLiAgVGhpcyBlbnN1cmVz IHRoZSBzaWduYWwgaXMgc2VudCBhdCBtb3N0IG9uY2UKcGVyIGRlYWRsb2NrX3RpbWVvdXQgcGVy aW9kIHJhdGhlciB0aGFuIHJlcGVhdGVkbHkuCgpBZGRpdGlvbmFsbHksIHJlc2V0IGdvdF9zdGFu ZGJ5X2RlbGF5X3RpbWVvdXQgdG8gZmFsc2UgYmVmb3JlIGVuYWJsaW5nClNUQU5EQllfVElNRU9V VCwgZm9yIHN5bW1ldHJ5IHdpdGggdGhlIGV4aXN0aW5nIGdvdF9zdGFuZGJ5X2RlYWRsb2NrX3Rp bWVvdXQKcmVzZXQuCgpSZW1vdmUgdGhlIFhYWCBjb21tZW50IHRoYXQgbm90ZWQgdGhpcyBwcm9i bGVtLgotLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyB8IDIxICsrKysrKysr KysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCmluZGV4IDI5YWY3NzMzOTQ4Li4wZGJh MWZiNDI4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCisr KyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAtODE4LDYgKzgxOCw3IEBA IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aEJ1ZmZlclBpbih2b2lkKQogCiAJCWlmIChsdGlt ZSAhPSAwKQogCQl7CisJCQlnb3Rfc3RhbmRieV9kZWxheV90aW1lb3V0ID0gZmFsc2U7CiAJCQl0 aW1lb3V0c1tjbnRdLmlkID0gU1RBTkRCWV9USU1FT1VUOwogCQkJdGltZW91dHNbY250XS50eXBl ID0gVE1QQVJBTV9BVDsKIAkJCXRpbWVvdXRzW2NudF0uZmluX3RpbWUgPSBsdGltZTsKQEAgLTg1 MSwxNyArODUyLDE5IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aEJ1ZmZlclBpbih2b2lk KQogCQkvKgogCQkgKiBTZW5kIG91dCBhIHJlcXVlc3QgZm9yIGhvdC1zdGFuZGJ5IGJhY2tlbmRz IHRvIGNoZWNrIHRoZW1zZWx2ZXMgZm9yCiAJCSAqIGRlYWRsb2Nrcy4KLQkJICoKLQkJICogWFhY IFRoZSBzdWJzZXF1ZW50IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aEJ1ZmZlclBpbigpIHdp bGwgd2FpdAotCQkgKiB0byBiZSBzaWduYWxlZCBieSBVbnBpbkJ1ZmZlcigpIGFnYWluIGFuZCBz ZW5kIGEgcmVxdWVzdCBmb3IKLQkJICogZGVhZGxvY2tzIGNoZWNrIGlmIGRlYWRsb2NrX3RpbWVv dXQgaGFwcGVucy4gVGhpcyBjYXVzZXMgdGhlCi0JCSAqIHJlcXVlc3QgdG8gY29udGludWUgdG8g YmUgc2VudCBldmVyeSBkZWFkbG9ja190aW1lb3V0IHVudGlsIHRoZQotCQkgKiBidWZmZXIgaXMg dW5waW5uZWQgb3IgbHRpbWUgaXMgcmVhY2hlZC4gVGhpcyB3b3VsZCBpbmNyZWFzZSB0aGUKLQkJ ICogd29ya2xvYWQgaW4gdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbmQgYmFja2VuZHMuIEluIHByYWN0 aWNlIGl0IG1heQotCQkgKiBub3QgYmUgc28gaGFybWZ1bCBiZWNhdXNlIHRoZSBwZXJpb2QgdGhh dCB0aGUgYnVmZmVyIGlzIGtlcHQgcGlubmVkCi0JCSAqIGlzIGJhc2ljYWxseSBubyBzbyBsb25n LiBCdXQgd2Ugc2hvdWxkIGZpeCB0aGlzPwogCQkgKi8KIAkJU2VuZFJlY292ZXJ5Q29uZmxpY3RX aXRoQnVmZmVyUGluKFJFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTl9ERUFETE9DSyk7CisKKwkJ LyoKKwkJICogV2FpdCBoZXJlIHRvIGJlIHNpZ25hbGVkIGJ5IFVucGluQnVmZmVyKCksIHRvIHBy ZXZlbnQgdGhlCisJCSAqIHN1YnNlcXVlbnQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoQnVm ZmVyUGluKCkgY2FsbCAoZnJvbSB0aGUKKwkJICogY2FsbGVyJ3MgbG9vcCkgZnJvbSBmaXJpbmcg YW5vdGhlciBkZWFkbG9ja190aW1lb3V0IGFuZCByZS1zZW5kaW5nCisJCSAqIHRoZSBkZWFkbG9j ay1jaGVjayBzaWduYWwuICBXaXRob3V0IHRoaXMsIHRoZSBzaWduYWwgd291bGQgYmUgc2VudAor CQkgKiBldmVyeSBkZWFkbG9ja190aW1lb3V0IGludGVydmFsIHVudGlsIHRoZSBidWZmZXIgaXMg dW5waW5uZWQgb3IKKwkJICogbHRpbWUgaXMgcmVhY2hlZC4KKwkJICovCisJCWdvdF9zdGFuZGJ5 X2RlYWRsb2NrX3RpbWVvdXQgPSBmYWxzZTsKKwkJUHJvY1dhaXRGb3JTaWduYWwoV0FJVF9FVkVO VF9CVUZGRVJfQ0xFQU5VUCk7CiAJfQogCiAJLyoKLS0gCjIuNTIuMAoK --000000000000d97b7006506f1e61--