I found this patch in my local repo that I wrote some weeks or months
ago while debugging some XLog corruption problem: it was difficult to
pinpoint what XLog record in a long sequence of WAL files was causing a
problem, and the displaying the prev pointer in errcontext made finding
it much easier -- I could correlate it with pg_xlogdump output, I think.

Anyone sees a reason not to apply this or something like it?

(As I recall, we eventually found out that the underlying issue was that
two postmasters shared one data area over NFS and were overwriting one
another's WAL files, or something like that.  But this was some time ago
so I could be mistaken that it's the same case.)

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
commit 835e7b3c62590574e529558493c50fbfb5a85d6c
Author: Alvaro Herrera <alvhe...@alvh.no-ip.org>
Date:   Tue Apr 14 12:41:11 2015 -0300

    show prev in errcontext

diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 2580996..36dc422 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -10389,7 +10389,10 @@ rm_redo_error_callback(void *arg)
 	initStringInfo(&buf);
 	xlog_outdesc(&buf, record);
 
-	errcontext("xlog redo %s", buf.data);
+	errcontext("xlog redo (prev %X/%X) %s",
+			   (uint32) (XLogRecGetPrev(record) >> 32),
+			   (uint32) (XLogRecGetPrev(record)),
+			   buf.data);
 
 	pfree(buf.data);
 }
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to