abortcont_additional_log_137.diff

application/octet-stream

Filename: abortcont_additional_log_137.diff
Type: application/octet-stream
Part: 0
Message: Re: [BUG] Panic due to incorrect missingContrecPtr after promotion

Patch

Format: format-patch
Series: patch 0001
Subject: DEBUG suggestions by community
File+
src/backend/access/transam/xlog.c 19 0
From e5b5c2e933d4cfb2759e5e5da7c2f6b6b597b9bf Mon Sep 17 00:00:00 2001
From: "Sami Imseih (AWS)" <simseih@amazon.com>
Date: Thu, 4 Aug 2022 16:39:34 +0000
Subject: [PATCH 1/1] DEBUG suggestions by community

---
 src/backend/access/transam/xlog.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index c03eaf0ed5..4169f03523 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -4398,8 +4398,27 @@ ReadRecord(XLogReaderState *xlogreader, int emode,
 	for (;;)
 	{
 		char	   *errormsg;
+		static int log = 2;
 
 		record = XLogReadRecord(xlogreader, &errormsg);
+		if (!record)
+			log = 2;
+		else if (log > 0)
+			log--;
+
+		if (log)
+			elog(LOG,
+				"### [%s] @%X/%X: abort=(%X/%X)%X/%X, miss=(%X/%X)%X/%X, SbyMode=%d, SbyModeReq=%d",
+				record ? "S": (XLogRecPtrIsInvalid(xlogreader->abortedRecPtr) ? "F" : "A"),
+					(uint32) (xlogreader->EndRecPtr >> 32), (uint32) xlogreader->EndRecPtr,
+					(uint32) (xlogreader->abortedRecPtr >>32), (uint32) xlogreader->abortedRecPtr,
+					(uint32) (abortedRecPtr >>32), (uint32) abortedRecPtr,
+					(uint32) (xlogreader->missingContrecPtr >>32),
+								(uint32) xlogreader->missingContrecPtr,
+					(uint32) (missingContrecPtr >>32), (uint32) missingContrecPtr,
+				StandbyMode,
+				StandbyModeRequested);
+
 		ReadRecPtr = xlogreader->ReadRecPtr;
 		EndRecPtr = xlogreader->EndRecPtr;
 		if (record == NULL)
-- 
2.37.1