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 1vx0fO-009yn3-0N for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 10:38:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vx0fM-0002s3-1v for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Mar 2026 10:38:21 +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 1vx0fM-0002rt-0O for pgsql-hackers@lists.postgresql.org; Mon, 02 Mar 2026 10:38:20 +0000 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vx0fK-000000000H7-36XM for pgsql-hackers@postgresql.org; Mon, 02 Mar 2026 10:38:19 +0000 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-79800183233so56200147b3.1 for ; Mon, 02 Mar 2026 02:38:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772447898; cv=none; d=google.com; s=arc-20240605; b=KaF+zjxEEjFDxmJONun2Xh1BTFhGXj4l8OI6QcBluA+vzTrPk6JFcMiUCzdSD3gJiA bKeevVOudJBWddFtydnc1mPAI1FY5u3q5CR+UZkJ3PuDmszv8tE59tzEByonh5fcId1m MnSvHRdxHKHvie3wWb4AoT0mFqm2PXQ1W//IeDXKHc3dBGzg4lbGoL1gJX4BIamsRNWV REtagcq6ToGUC3Q5pnQmnN3+d0Eeus21OnNGzbKxegaxoxhIVC4RBMzKTN08QFpgS9UN fVwVJPRAjcBxk3pT/CjLsGYv06Tojc2z12b4pEjaUNB1+ZisiRQiHel1+sRYinqSGDV1 dc8g== 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=ZSHQ/FTcfsAyjNtJD1N8qhfdMAoy1h/enxyhnl1WNcE=; fh=pMq4UVusbwSCnJyXyh/ZAMXVj6SK5SGRaJXcOJ7I5rU=; b=FjdGF0gpdIRU+9WNAASxvH2GFbmY+XVjJvoRvZH6eJa+fP/hPuZdIVFENO8EvHLITb y2cKXTQfUZ7c30JlckmF2jaObNKYGwvUw5LYFnyvH12kbGgjkjQuKyX26IBsRVKscvVv G4zuhqCpJsdcO0n5PdkU4yihdVPJaBiMJH57seYLZCF+ae/ZTzbw89hSgOIza6OFYJrD h9gvKwgEjhjGKTulpKNJDAXJmnSEdcmKc4YV+ghxPCfR9B5e5tw13Diy9/JEqzpjPaDF ULdUsoW0K7lGxTP7UHwcsj/h4yTQb1OaHjI5BwYZmnMWWiwmwopKlgVAkRyK7/jmTsu/ z5/g==; 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=1772447898; x=1773052698; 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=ZSHQ/FTcfsAyjNtJD1N8qhfdMAoy1h/enxyhnl1WNcE=; b=gwaNSpeAduVdFh4COVzGyk55VEe9Vl9HpYo9Qd/082w3B8nXX0s9Yy2M/B4k48BdCf iOyZFVw+zTaJe+B0PqJAFq0zNi4ACTNC0f7LsSJW9/TZy1tJRs2qEl07lvV6xV41JQcj v5sCacDPgaNsEWXBI64ZAfqYJ6sUqasK6bnXs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772447898; x=1773052698; 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=ZSHQ/FTcfsAyjNtJD1N8qhfdMAoy1h/enxyhnl1WNcE=; b=xU4TETISgku9uH7tmLE9xpkMFQfXnaByoXqvkESbuWI3rn0e7tmk5uZdU419hkN7st 7iRU/4hRz7epF98DshFhbhG2Xy+8s4NOixCuUPGv7Xyal6A5I2+dA4VVXqdkx3rNn78d SGEMPNXJhc2N3tTEKoc1yk7pVJ1OeaeYrAsWaBNMMq0axuzv/XRtWuh9f9YI4AqqDsoY aV96P6l2B6ZlZakTT7rjC0WDg/B6ljWIzDe63uXZ03sio0FhLNf+6G0hKjd8os/fZL30 6F3Y/aocepKp0DS5AHwdh45pDX4jMdBEKXwNCpRQMH2+qlMsFgLkDS0/H69vf42E0EGq lznQ== X-Gm-Message-State: AOJu0YwjwF6WQlOF92VKrSqaIqaS1z/fzARrcYP8hR7UVDwA3bW4l9n6 1FOJofs0HRoDaHnHb/OcGdfRYBSlIrTzZRE4Uoo4vgWSoR3mlNRJmrrmbY4f7VOHANAee3E9rdI ufQHtOnvztPlrJu+lX/EALzmfSkn+de9PPit3a+lc6Q== X-Gm-Gg: ATEYQzxB71FYhRODlG1BWdWTk4X9qqACZnmIHcznvLKHxIVyt/ConIhhlDciM85CTZ5 j4h9PHZEobda7CEkHYRW2KwPElyF5W2eXrbrKYiCYAlPg8Q8Qf+92Zadj33uOFwRUYAeqCsBJTX BCZMpfXYOplR6bsIqmNbnbhtTooxsaVuIvI/sAoBN7rrUZb8SaBPRrbymO/BWJ69rIxHX9IS03h 0BikvPGQYy0WcTb8MxSdq7WHBlvwtMdAvctinuRDJvDHXX9ccFv5E5FAZ0WFyqK+ZV0fJZqDttc /CoEJA6otrWWz9J47w== X-Received: by 2002:a05:690c:c52e:b0:796:41ed:80db with SMTP id 00721157ae682-79874e5c9d4mr120458037b3.35.1772447897702; Mon, 02 Mar 2026 02:38:17 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Anthonin Bonnefoy Date: Mon, 2 Mar 2026 11:38:06 +0100 X-Gm-Features: AaiRm51Fsm1dVjuiY90L9_d2KETOkuK1Y5LucsSKKKlcmp4PgS2s6i855IHxyYE 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="000000000000546166064c082fbf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000546166064c082fbf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Feb 26, 2026 at 5:20=E2=80=AFPM Fujii Masao = wrote: > Thanks for reporting this issue and for the patch! > > I was able to reproduce the problem on master. Thanks for the confirmation! > I'm a bit concerned that this approach could cause walwriter to attempt > WAL writes more aggressively in some cases, adding overhead during > normal processing. If the goal is only to prevent shutdown from getting s= tuck, > instead, would it be sufficient for ShutdownXLOG() to call > XLogSetAsyncXactLSN() just before WalSndWaitStopping()? I did something similar with the first version using XLogFlush(WriteRqstPtr), and it indeed fixes the shutdown issue. Though I was under the impression that calling XLogSetAsyncXactLSN() in RecordTransactionAbort was a better approach, as it is similar to reporting the latest async abort. You may have a large backlog of records, like selects pruning a lot of pages and timing out, which the next commit will have to flush. Notifying the walwriter allows it to flush those records it can. Maybe for the context of a backport, patching ShutdownXLOG has the benefit of minimising the amount of changes and risks? I've updated the RecordTransactionAbort approach for now, with a small optimization. XactLastRecEnd may be 0 if nothing was written, and we can skip the unnecessary spinlocks in this case. Regards, Anthonin Bonnefoy --000000000000546166064c082fbf Content-Type: application/octet-stream; name="v3-0001-Fix-stuck-shutdown-due-to-unflushed-records.patch" Content-Disposition: attachment; filename="v3-0001-Fix-stuck-shutdown-due-to-unflushed-records.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm9153xt0 RnJvbSAzMTkyNTRmMTlmOWRkZjFiN2M5M2E1OGQ5YjBiYWI0MGIwYTAwZDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRob25pbiBCb25uZWZveSA8YW50aG9uaW4uYm9ubmVmb3lA ZGF0YWRvZ2hxLmNvbT4KRGF0ZTogVHVlLCAyNCBGZWIgMjAyNiAwOToyNDo0OCArMDEwMApTdWJq ZWN0OiBGaXggc3R1Y2sgc2h1dGRvd24gZHVlIHRvIHVuZmx1c2hlZCByZWNvcmRzCgpTaHV0ZG93 biBzZXF1ZW5jZSBtYXkgYmUgc3R1Y2sgaW5kZWZpbml0ZWx5IHVuZGVyIHRoZSBmb2xsb3dpbmcK Y2lyY3Vtc3RhbmNlczoKLSBEYXRhIGNoZWNrc3VtcyBpcyBlbmFibGVkCi0gQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHdhbHNlbmRlciBpcyBydW5uaW5nCi0gQSBzZWxlY3QgaW4gYW4gZXhwbGljaXQg dHJhbnNhY3Rpb24gdHJpZXMgdG8gcHJ1bmUgYSBmdWxsIGhlYXAgcGFnZSwKICB3cm90ZSBhIEZQ SV9GT1JfSElOVCByZWNvcmQgd2hpY2ggY3Jvc3NlcyB0aGUgcGFnZSBib3VuZGFyeQotIFRoZSBz ZWxlY3QgaXMgcm9sbGJhY2tlZCAob3Iga2lsbGVkKQotICdwZ19jdGwgc3RvcCcgaXMgc2VudAoK VGhlIEZQSV9GT1JfSElOVCByZWNvcmQgaXMgbGlrZWx5IGdvaW5nIHRvIGJlIGEgY29udHJlY29y ZCBhbmQgc3RhcnRzIGEKbmV3IHBhZ2UuIEhvd2V2ZXIsIGFzIHRoZSBzZWxlY3QgaXMgcm9sbGJh Y2tlZCwgWExvZ1NldEFzeW5jWGFjdExTTgppc24ndCBjYWxsZWQgdG8gYWR2YW5jZSB0aGUgTFNO IHRvIGluY2x1ZGUgdGhpcyByZWNvcmQuCgpXaGVuIHRoZSBjaGVja3BvaW50ZXIgc3RhcnRzIFNo dXRkb3duWExPRygpLCBhbGwgd2Fsc2VuZGVycyB3aWxsIGJlCm5vdGlmaWVkIHRvIHN0b3AuIEhv d2V2ZXIsIHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHdhbHNlbmRlciB3aWxsIGJlCnN0dWNrIGlu IHRoZSBmb2xsb3dpbmcgaW5maW5pdGUgbG9vcDoKLSBUcmllcyB0byByZWFkIHRoZSBsYXN0IEZQ SV9GT1JfSElOVCByZWNvcmQKLSBUaGUgcGFnZSB3aXRoIHRoZSByZWNvcmQgaGVhZGVyIGlzIHJl YWQKLSB0b3RfbGVuID4gbGVuLCB0aGUgcmVjb3JkIG5lZWRzIHRvIGJlIHJlYXNzZW1ibGVkCi0g VHJpZXMgdG8gcmVhZCB0aGUgbmV4dCBwYWdlIGNvbnRhaW5pbmcgdGhlIHJlc3Qgb2YgdGhlIHJl Y29yZC4gSXQgZmFpbHMgc2luY2UgdGhpcyBwYWdlIHdhcyBuZXZlciB3cml0dGVuLgotIHhsb2cg cmVhZGVyIHN0YXRlIGlzIHJlc2V0IHdpdGggWExvZ1JlYWRlckludmFsUmVhZFN0YXRlCi0gSXQg Z29lcyBiYWNrIHRvIHRoZSBzdGFydCBvZiBXYWxTbmRMb29wJ3MgbG9vcAoKVGhlcmUgYXJlIHNv bWUgYXR0ZW1wdHMgZG9uZSBieSB0aGUgd2Fsc2VuZGVyIHRvIGZsdXNoIHRoZSBXQUwgdXNpbmcK WExvZ0JhY2tncm91bmRGbHVzaC4gSG93ZXZlciwgWExvZ0JhY2tncm91bmRGbHVzaCBvbmx5IHdy aXRlcyBjb21wbGV0ZWQKYmxvY2tzLCBvciB1cCB0byB0aGUgbGF0ZXN0IGtub3duIGFzeW5jIGxz bi4KClNpbmNlIHRoZSBzZWxlY3Qgd2FzIHJvbGxiYWNrZWQsIFhMb2dCYWNrZ3JvdW5kRmx1c2gg ZG9lc24ndCBmbHVzaCB0aGUKbmV4dCBwYXJ0aWFsIHBhZ2UuCgpUaGlzIHBhdGNoIGZpeGVzIHRo ZSBpc3N1ZSBieSBhZHZhbmNpbmcgdGhlIGFzeW5jIExTTiwgZXZlbiB3aGVuIHRoZQp0cmFuc2Fj dGlvbiBkb2Vzbid0IGhhdmUgYW4gYXNzaWduZWQgeGlkLiBUaGlzIGFsbG93cwpYTG9nQmFja2dy b3VuZEZsdXNoIHRvIHdyaXRlIHRoZSBuZWNlc3NhcnkgcGFydGlhbCBwYWdlIHdoZW4gY2FsbGVk IGJ5CnRoZSB3YWxzZW5kZXIuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5j IHwgMTIgKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCBlYmE0ZjA2MzE2OC4uMTU3MjlkOWUyZGEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKQEAgLTE3ODcsNyArMTc4NywxOSBAQCBSZWNvcmRU cmFuc2FjdGlvbkFib3J0KGJvb2wgaXNTdWJYYWN0KQogCXsKIAkJLyogUmVzZXQgWGFjdExhc3RS ZWNFbmQgdW50aWwgdGhlIG5leHQgdHJhbnNhY3Rpb24gd3JpdGVzIHNvbWV0aGluZyAqLwogCQlp ZiAoIWlzU3ViWGFjdCkKKwkJeworCQkJLyoKKwkJCSAqIEV2ZW4gaWYgbm8geGlkIHdhcyBhc3Np Z25lZCwgc29tZSByZWNvcmRzIG1heSBoYXZlIGJlZW4gd3JpdHRlbgorCQkJICogaW4gdGhlIFdB TC4gUmVwb3J0IHRoZSBsYXRlc3QgYXN5bmMgTFNOLCBzbyB0aGF0IHRoZSBXQUwgd3JpdGVyCisJ CQkgKiBrbm93cyB0byBmbHVzaCB0aG9zZSByZWNvcmRzLiBUaGlzIGlzIGltcG9ydGFudCB3aGVu IHNodXR0aW5nCisJCQkgKiBkb3duLCB3YWxzZW5kZXIgbWF5IHVzZSBYTG9nQmFja2dyb3VuZEZs dXNoIHRvIHRyaWdnZXIgcGVuZGluZworCQkJICogV0FMIHRvIGJlIHdyaXR0ZW4gb3V0LiBJZiB0 aGV5J3JlIG5vdCB0cmFja2VkIGJ5IGFzeW5jIHhhY3QKKwkJCSAqIGxzbiwgdGhleSB3b24ndCBi ZSB3cml0dGVuIGJ5IFhMb2dCYWNrZ3JvdW5kRmx1c2guCisJCQkgKi8KKwkJCWlmIChYYWN0TGFz dFJlY0VuZCAhPSAwKQorCQkJCVhMb2dTZXRBc3luY1hhY3RMU04oWGFjdExhc3RSZWNFbmQpOwog CQkJWGFjdExhc3RSZWNFbmQgPSAwOworCQl9CiAJCXJldHVybiBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKIAl9CiAKLS0gCjIuNTIuMAoK --000000000000546166064c082fbf--