aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/access/transam/xlog.c4
-rw-r--r--src/test/recovery/t/026_overwrite_contrecord.pl5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index a30314bc830..330aa9ddd04 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -10149,6 +10149,10 @@ VerifyOverwriteContrecord(xl_overwrite_contrecord *xlrec, XLogReaderState *state
(uint32) (state->overwrittenRecPtr >> 32),
(uint32) state->overwrittenRecPtr);
+ /* We have safely skipped the aborted record */
+ abortedRecPtr = InvalidXLogRecPtr;
+ missingContrecPtr = InvalidXLogRecPtr;
+
ereport(LOG,
(errmsg("successfully skipped missing contrecord at %X/%X, overwritten at %s",
(uint32) (xlrec->overwritten_lsn >> 32),
diff --git a/src/test/recovery/t/026_overwrite_contrecord.pl b/src/test/recovery/t/026_overwrite_contrecord.pl
index 867b75937eb..693f7dff877 100644
--- a/src/test/recovery/t/026_overwrite_contrecord.pl
+++ b/src/test/recovery/t/026_overwrite_contrecord.pl
@@ -15,7 +15,7 @@ plan tests => 3;
# Test: Create a physical replica that's missing the last WAL file,
# then restart the primary to create a divergent WAL file and observe
# that the replica replays the "overwrite contrecord" from that new
-# file.
+# file and the standby promotes successfully.
my $node = PostgresNode->get_new_node('primary');
$node->init(allows_streaming => 1);
@@ -102,5 +102,8 @@ like(
qr[successfully skipped missing contrecord at],
"found log line in standby");
+# Verify promotion is successful
+$node_standby->promote;
+
$node->stop;
$node_standby->stop;