diff options
author | Andres Freund | 2022-01-21 19:22:55 +0000 |
---|---|---|
committer | Andres Freund | 2022-01-21 19:22:55 +0000 |
commit | 1fabec7d7c389181424fa7881632a415584ca7b7 (patch) | |
tree | 8508e6d4df8403ba37972f06fa72f5f719eca7e7 | |
parent | 6c07f9ebce1579612c4ed9076159f9e942e50f9d (diff) |
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 <[email protected]>
Author: Nathan Bossart <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Backpatch: 10-
-rw-r--r-- | src/backend/access/heap/rewriteheap.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/access/heap/rewriteheap.c b/src/backend/access/heap/rewriteheap.c index aa265edf60..2a53826736 100644 --- a/src/backend/access/heap/rewriteheap.c +++ b/src/backend/access/heap/rewriteheap.c @@ -1282,4 +1282,7 @@ CheckPointLogicalRewriteHeap(void) } } FreeDir(mappings_dir); + + /* persist directory entries to disk */ + fsync_fname("pg_logical/mappings", true); } |