From 48089e678b425291442f4dc14d87ca25c524f65f Mon Sep 17 00:00:00 2001 From: Satyanarayana Narlapuram Date: Tue, 14 Apr 2026 00:09:44 +0000 Subject: [PATCH] Fix checkpointer PANIC due to missing fsync cancel in mdunlinkfork() Add missing register_forget_request() in the 'else' branch of mdunlinkfork(), before register_unlink_segment(), matching what the 'if' branch already does. --- src/backend/storage/smgr/md.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index dee2903..d715307 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -419,6 +419,11 @@ mdunlinkfork(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo) /* Prevent other backends' fds from holding on to the disk space */ ret = do_truncate(path.str); + /* Forget any pending sync requests for the first segment */ + save_errno = errno; + register_forget_request(rlocator, forknum, 0 /* first seg */ ); + errno = save_errno; + /* Register request to unlink first segment later */ save_errno = errno; register_unlink_segment(rlocator, forknum, 0 /* first seg */ ); -- 2.43.0