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 1vxhxm-00H3cz-1d for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 08:52:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxhxk-00BjBV-2w for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 08:52:13 +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 1vxhxk-00BjBM-1o for pgsql-hackers@lists.postgresql.org; Wed, 04 Mar 2026 08:52:13 +0000 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxhxi-00000000V2k-1Opo for pgsql-hackers@postgresql.org; Wed, 04 Mar 2026 08:52:12 +0000 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-506a67282a0so63986801cf.0 for ; Wed, 04 Mar 2026 00:52:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772614328; cv=none; d=google.com; s=arc-20240605; b=QiX0BLpprysETXVsZJZPUVy5BTqrED1P0b6aZSgJ7gAoKKliRwHL/mDe7H/FDZM4AQ eSp34MWq0I+IFOlbPEXRr9zNXPTOfZFvTp5hhsSgs/oi2g+CCbLFwC0tC6hFjGEeziVp vK37TLIsxiUUuAdzdqsaLHtJIxrXAm3iROFFIe9uEXEqVjAKhm5C2ohC8O3Ji15tCTHX es7RW56h5ExWTgtRw6ikb17dtJrNb692P4PWY7+H5TUGUd3vrXFs0G3gUdFZC55bw/oK 5KKLlbO0fNYtjQWzw/biz/FPPzt6BI8nIZVyuloosjEn0KycTC56vAKiqg6siDjkEVF1 0/cQ== 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=lruYI7VGrZamZ22ezIPekcD6mJmwMVpJoPp+oHHAk88=; fh=pMq4UVusbwSCnJyXyh/ZAMXVj6SK5SGRaJXcOJ7I5rU=; b=TAobNQj/iHFBNhgyX9xuP5DGC3XRWxxQuEqPfIE24aNdMf1MqYJmbl1w4mb8yMnXqR 5dpiWWxC+6MDcl20hZPBgdnmr7fdIMPVtFLGqr3/VSYdBaWIFZCf3pc8lFnac9/2CImr YW7uJ3Y6IRMZGAIcnYh6bP1J8EGGGRCWQ5uRWoM03QjHV/eicBozTxCBTidZRSIkTYeS WZb3vOCM3rGaUZOGpp/db0jH4Wddqv4whcnuFVuUNJCimJu/mXJBOOUwylPsJa2AiHjy rl5TiR3Gk1KBFUhWFIHof0lT6iQ3PORL3SFMT4O6+QldTKXXzpQhEYNOXdh7wdBR6QD1 w0BA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datadoghq.com; s=google; t=1772614328; x=1773219128; darn=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=lruYI7VGrZamZ22ezIPekcD6mJmwMVpJoPp+oHHAk88=; b=bV12ZhQfpMVw68CViTDUnhOTnYqFZaISSxLPZHhnv62z5i0vyUR9kMAvHWOOPCx11G 7gYyPu8pn2Tq2XGyheCt5m7V8EDwuJUPYdYPu9ix32ixXOqIJTDR8t/AjgtDBlCMFZgf 8yzQLTMe/3nMZtQ9+FAOHhOzbouNlV82dryCE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772614328; x=1773219128; 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=lruYI7VGrZamZ22ezIPekcD6mJmwMVpJoPp+oHHAk88=; b=InD0mGwArSzsKxJkGHngWE+/L3H1/p5kVP+XPGhBWzqqrotdCgcwTfKGr7pRw7n3Ku 5sd4kEKtfN+dQcypDrvMQjCMNy0QqlZZJt+TcKQPzQmv/k4Q2d5LGr7wqRYEUfTPKJFM J8MS2fCzIi8D5xaXNl6fowXJbi/StKQB55MxS8Dmz3N2knuZxPZH1J/jVRD4vVHP1Pw0 B3ItkVHMN95xm62fpzOmaAU4BkiFFj8xKaq2WJmhsouFKa70oEf7v+Tmi0KUjhWcHcAG c5Xyfr+MLPEVeWewZYPQ16udEHcddbaZ50oWYmc6ya57e0rO6YC/nbTekF93bQt7vM6a +3kg== X-Gm-Message-State: AOJu0YwsVfltGOjim4twJKFiWu1Qh5Cj1KiS592SB/PeZ7CNNoAjFLhR ZiGG5lM+CiNg0K6tpuFdhtOiydfguNg07ZeGUX0wk79d+wEOY8hBXUU+rd2mLZJN6pVt7726LwP WGMgJ43VnPa3ghcwj5mkVrtH8OdudxKg+KADaicjHqQ== X-Gm-Gg: ATEYQzxqnAK8UcwaHetIVe6cEPC+jPWfMsC6ZlZYFM7ABqZOKSIUoLoQ15jXl7RlU4p 63cLnSVn3dfTUa5e3+xaGNbe5rFN+3gns8auzH3MXixTPlixLRbEpX+P0hOP6cON308x5+FgmR6 aYHNV+w6XY/TRui+X/pIAB1mcfUe64r5D1oy0TIf2jmaHJmhU4XC97mCIGKBo+Zas57czRvoGD2 lqh8EuOJfvQKF0aMbu90DBSZ9KqUIpHsFMCKVuULW0FANulb/hHNOjNyTBy2nYX7Sa+XXb3ZJ8m pcQOOgc= X-Received: by 2002:ac8:5fc7:0:b0:502:99a5:5f0f with SMTP id d75a77b69052e-508db30b879mr17172771cf.30.1772614327609; Wed, 04 Mar 2026 00:52:07 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Anthonin Bonnefoy Date: Wed, 4 Mar 2026 09:51:56 +0100 X-Gm-Features: AaiRm50l-EV_fD87_3LEun4hF7p2KujK1-GEjZL2gx4QNE3xN1sxDfIXyrdtZzs Message-ID: Subject: Re: Shutdown indefinitely stuck due to unflushed FPI_FOR_HINT record To: Fujii Masao Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000053035f064c2eef41" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000053035f064c2eef41 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 3, 2026 at 6:29=E2=80=AFPM Fujii Masao = wrote: > The approach of calling XLogSetAsyncXactLSN() in RecordTransactionAbort()= seems > more like an improvement than a bug fix. Since it changes > RecordTransactionAbort(), it could have unintended impact on the system. > > It may be a reasonable idea (though I'm not certain yet), but for a bug f= ix > I believe we should first apply the minimal change necessary to resolve > the issue. If needed, this approach could then be proposed later separate= ly as > an improvement for the next major version. Agreed, that's definitely a change that can have a large impact. I will open a separate thread later. > As a simpler alternative, would it make sense for walsender to call > XLogFlush(GetXLogInsertRecPtr()) instead of XLogBackgroundFlush() during > shutdown? I'm not sure why walsender currently uses XLogBackgroundFlush()= . > If there isn't a clear reason for that choice, directly calling XLogFlush= () > might be the simpler solution. Thought? That sounds like a good solution. I've tried it and it fixes the issue. And this only changes the shutdown behaviour in the walsender. The use of XLogBackgroundFlush() has been introduced with c6c333436491, but there's no mention why it was specifically used. I guess the assumption was that a change would either be flushed with a commit, or tracked by async LSN through rollback, so XLogBackgroundFlush() would always write pending records. But this turns out to be false in the case of this bug. I've updated the patch with this approach. Regards, Anthonin Bonnefoy --00000000000053035f064c2eef41 Content-Type: application/octet-stream; name="v5-0001-Fix-stuck-shutdown-due-to-unflushed-records.patch" Content-Disposition: attachment; filename="v5-0001-Fix-stuck-shutdown-due-to-unflushed-records.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmbsij2k0 RnJvbSAwZTA2YzVmZTQ1MTgzMjI3NmYyNmNiM2E4NjExMTIyOGU3ODUyNWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRob25pbiBCb25uZWZveSA8YW50aG9uaW4uYm9ubmVmb3lA ZGF0YWRvZ2hxLmNvbT4KRGF0ZTogVHVlLCAzIE1hciAyMDI2IDE3OjQyOjQwICswMTAwClN1Ympl Y3Q6IEZpeCBzdHVjayBzaHV0ZG93biBkdWUgdG8gdW5mbHVzaGVkIHJlY29yZHMKClNodXRkb3du IHNlcXVlbmNlIG1heSBiZSBzdHVjayBpbmRlZmluaXRlbHkgdW5kZXIgdGhlIGZvbGxvd2luZwpj aXJjdW1zdGFuY2VzOgotIERhdGEgY2hlY2tzdW1zIGlzIGVuYWJsZWQKLSBBIGxvZ2ljYWwgcmVw bGljYXRpb24gd2Fsc2VuZGVyIGlzIHJ1bm5pbmcKLSBBIHNlbGVjdCBpbiBhbiBleHBsaWNpdCB0 cmFuc2FjdGlvbiB0cmllcyB0byBwcnVuZSBhIGZ1bGwgaGVhcCBwYWdlLAogIHdyb3RlIGEgRlBJ X0ZPUl9ISU5UIHJlY29yZCB3aGljaCBjcm9zc2VzIHRoZSBwYWdlIGJvdW5kYXJ5Ci0gVGhlIHNl bGVjdCBpcyByb2xsYmFja2VkIChvciBraWxsZWQpCi0gJ3BnX2N0bCBzdG9wJyBpcyBzZW50CgpU aGUgRlBJX0ZPUl9ISU5UIHJlY29yZCBpcyBsaWtlbHkgZ29pbmcgdG8gYmUgYSBjb250cmVjb3Jk IGFuZCBzdGFydHMgYQpuZXcgcGFnZS4gSG93ZXZlciwgYXMgdGhlIHNlbGVjdCBpcyByb2xsYmFj a2VkLCBYTG9nU2V0QXN5bmNYYWN0TFNOCmlzbid0IGNhbGxlZCB0byBhZHZhbmNlIHRoZSBMU04g dG8gaW5jbHVkZSB0aGlzIHJlY29yZC4KCldoZW4gdGhlIGNoZWNrcG9pbnRlciBzdGFydHMgU2h1 dGRvd25YTE9HKCksIGFsbCB3YWxzZW5kZXJzIHdpbGwgYmUKbm90aWZpZWQgdG8gc3RvcC4gSG93 ZXZlciwgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gd2Fsc2VuZGVyIHdpbGwgYmUKc3R1Y2sgaW4g dGhlIGZvbGxvd2luZyBpbmZpbml0ZSBsb29wOgotIFRyaWVzIHRvIHJlYWQgdGhlIGxhc3QgRlBJ X0ZPUl9ISU5UIHJlY29yZAotIFRoZSBwYWdlIHdpdGggdGhlIHJlY29yZCBoZWFkZXIgaXMgcmVh ZAotIHRvdF9sZW4gPiBsZW4sIHRoZSByZWNvcmQgbmVlZHMgdG8gYmUgcmVhc3NlbWJsZWQKLSBU cmllcyB0byByZWFkIHRoZSBuZXh0IHBhZ2UgY29udGFpbmluZyB0aGUgcmVzdCBvZiB0aGUgcmVj b3JkLiBJdCBmYWlscyBzaW5jZSB0aGlzIHBhZ2Ugd2FzIG5ldmVyIHdyaXR0ZW4uCi0geGxvZyBy ZWFkZXIgc3RhdGUgaXMgcmVzZXQgd2l0aCBYTG9nUmVhZGVySW52YWxSZWFkU3RhdGUKLSBJdCBn b2VzIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIFdhbFNuZExvb3AncyBsb29wCgpUaGVyZSBhcmUgc29t ZSBhdHRlbXB0cyBkb25lIGJ5IHRoZSB3YWxzZW5kZXIgdG8gZmx1c2ggdGhlIFdBTCB1c2luZwpY TG9nQmFja2dyb3VuZEZsdXNoLiBIb3dldmVyLCBYTG9nQmFja2dyb3VuZEZsdXNoIG9ubHkgd3Jp dGVzIGNvbXBsZXRlZApibG9ja3MsIG9yIHVwIHRvIHRoZSBsYXRlc3Qga25vd24gYXN5bmMgbHNu LiBTaW5jZSB0aGUgc2VsZWN0IHdhcwpyb2xsYmFja2VkLCBYTG9nQmFja2dyb3VuZEZsdXNoIGRv ZXNuJ3QgZmx1c2ggdGhlIG5leHQgcGFydGlhbCBwYWdlLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUg aXNzdWUgYnkgcmVwbGFjaW5nIFhMb2dCYWNrZ3JvdW5kRmx1c2goKSBieQpYTG9nRmx1c2goR2V0 WExvZ0luc2VydFJlY1B0cigpKSwgZmx1c2hpbmcgYWxsIHBlbmRpbmcgcmVjb3JkcyB3aXRob3V0 CmRlcGVuZGluZyBvbiBhc3luYyBMU04gdG8gYmUgdXAgdG8gZGF0ZS4KLS0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5k ZXggMmNkZThlYmM3MjkuLjVhNmE2MTg2NzhkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5k ZXIuYwpAQCAtMTg4Niw3ICsxODg2LDcgQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxv YykKIAkJICogd3JpdHRlbiwgYmVjYXVzZSB3YWx3cml0ZXIgaGFzIHNodXQgZG93biBhbHJlYWR5 LgogCQkgKi8KIAkJaWYgKGdvdF9TVE9QUElORykKLQkJCVhMb2dCYWNrZ3JvdW5kRmx1c2goKTsK KwkJCVhMb2dGbHVzaChHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOwogCiAJCS8qCiAJCSAqIFRvIGF2 b2lkIHRoZSBzY2VuYXJpbyB3aGVyZSBzdGFuZGJ5cyBuZWVkIHRvIGNhdGNoIHVwIHRvIGEgbmV3 ZXIKLS0gCjIuNTIuMAoK --00000000000053035f064c2eef41--