From fef2c17807e095a04441e4f1fe05f75d5578ead2 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 14 Sep 2012 09:35:07 -0400 Subject: Properly set relpersistence for fake relcache entries. This can result in buffers failing to be properly flushed at checkpoint time, leading to data loss. Report, diagnosis, and patch by Jeff Davis. --- src/backend/storage/buffer/bufmgr.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/backend/storage/buffer/bufmgr.c') diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 5eff617ed7a..d7f78294207 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -269,6 +269,8 @@ ReadBufferWithoutRelcache(RelFileNode rnode, ForkNumber forkNum, SMgrRelation smgr = smgropen(rnode, InvalidBackendId); + Assert(InRecovery); + return ReadBuffer_common(smgr, RELPERSISTENCE_PERMANENT, forkNum, blockNum, mode, strategy, &hit); } -- cgit v1.2.3