From f862cc09fad1796c085d0a01ff2f92421608046f Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Fri, 21 Jan 2022 11:22:55 -0800 Subject: [PATCH] fsync pg_logical/mappings in CheckPointLogicalRewriteHeap(). While individual logical rewrite files were synced to disk, the directory was not. On some filesystems that could lead to loosing directory entries after a crash. Reported-By: Tom Lane Author: Nathan Bossart Discussion: https://postgr.es/m/867F2E29-2782-4869-970E-B984C6D35A8F@amazon.com Backpatch: 10- --- src/backend/access/heap/rewriteheap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c index f208b5c4aa9..894bb17fcc6 100644 --- a/src/backend/access/heap/rewriteheap.c +++ b/src/backend/access/heap/rewriteheap.c @@ -1307,4 +1307,7 @@ CheckPointLogicalRewriteHeap(void) } } FreeDir(mappings_dir); + + /* persist directory entries to disk */ + fsync_fname("pg_logical/mappings", true); } -- 2.39.5