(unnamed)
text/plain
Filename: (unnamed)
Type: text/plain
Part: 0
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 09d4dff..cf73b58 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -5759,9 +5759,6 @@ StartupXLOG(void)
/* Handle interrupt signals of startup process */
HandleStartupProcInterrupts();
- /* Allow read-only connections if we're consistent now */
- CheckRecoveryConsistency();
-
/*
* Have we reached our recovery target?
*/
@@ -5833,6 +5830,9 @@ StartupXLOG(void)
/* Pop the error context stack */
error_context_stack = errcallback.previous;
+ /* Allow read-only connections if we're consistent now */
+ CheckRecoveryConsistency();
+
if (!XLogRecPtrIsInvalid(ControlFile->backupStartPoint) &&
XLByteLE(ControlFile->backupEndPoint, EndRecPtr))
{
diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c
index 993bc49..d34ab65 100644
--- a/src/backend/catalog/storage.c
+++ b/src/backend/catalog/storage.c
@@ -519,6 +519,12 @@ smgr_redo(XLogRecPtr lsn, XLogRecord *record)
visibilitymap_truncate(rel, xlrec->blkno);
FreeFakeRelcacheEntry(rel);
+
+ /*
+ * Xlogs before this record is unrepeatable, so winding
+ * minRecoveryPoint to here.
+ */
+ XLogFlush(lsn);
}
else
elog(PANIC, "smgr_redo: unknown op code %u", info);