From 5f99767439bfb3e0eff7bba7c51dd02d49235bbd Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 8 Aug 2024 10:20:25 +0300 Subject: [PATCH] Fix pg_rewind debug output to print the source timeline history getTimelineHistory() is called twice, to read the source and the target timeline history files. However, the loop to print the file with the --debug option used the wrong variable when dealing with the source. As a result, the source's history was always printed as empty. Spotted while debugging bug #18575, but this does not fix that bug, just the debugging output. Backpatch to all supported versions. Discussion: https://www.postgresql.org/message-id/092dd515-b7b4-4fd0-8407-ceca2f02f6ec@iki.fi (cherry picked from commit b5a5027c9796e2958392f4682928d47b5b0d0e47) --- src/bin/pg_rewind/pg_rewind.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c index 1ff8da16764..11b1ef3bfed 100644 --- a/src/bin/pg_rewind/pg_rewind.c +++ b/src/bin/pg_rewind/pg_rewind.c @@ -837,6 +837,7 @@ getTimelineHistory(ControlFileData *controlFile, int *nentries) pg_free(histfile); } + /* In debugging mode, print what we read */ if (debug) { int i; @@ -848,10 +849,7 @@ getTimelineHistory(ControlFileData *controlFile, int *nentries) else Assert(false); - /* - * Print the target timeline history. - */ - for (i = 0; i < targetNentries; i++) + for (i = 0; i < *nentries; i++) { TimeLineHistoryEntry *entry;