aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/bufmgr.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-09-14 09:35:07 -0400
committerRobert Haas <rhaas@postgresql.org>2012-09-14 09:35:07 -0400
commitbeb850e1d873f8920a78b9b9ee27e9f87c95592f (patch)
tree0a650e242f79708a002568b5812ec384e49bceb2 /src/backend/storage/buffer/bufmgr.c
parent9afc6481117d2dd936e752da0424a2b6b05f6459 (diff)
downloadpostgresql-beb850e1d873f8920a78b9b9ee27e9f87c95592f.tar.gz
postgresql-beb850e1d873f8920a78b9b9ee27e9f87c95592f.zip
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.
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r--src/backend/storage/buffer/bufmgr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index dba19ebc6d3..ff92360155d 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -271,6 +271,8 @@ ReadBufferWithoutRelcache(RelFileNode rnode, ForkNumber forkNum,
SMgrRelation smgr = smgropen(rnode, InvalidBackendId);
+ Assert(InRecovery);
+
return ReadBuffer_common(smgr, RELPERSISTENCE_PERMANENT, forkNum, blockNum,
mode, strategy, &hit);
}