]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix pg_rewind debug output to print the source timeline history
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 8 Aug 2024 07:20:25 +0000 (10:20 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 8 Aug 2024 07:22:49 +0000 (10:22 +0300)
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

src/bin/pg_rewind/pg_rewind.c

index f7f3b8227fd62a25a759fb8bd21f77f98a74c784..53110e0f4bfc9b30b0c039f4f01fb35b3c3a6e6e 100644 (file)
@@ -873,6 +873,7 @@ getTimelineHistory(TimeLineID tli, bool is_source, int *nentries)
                pg_free(histfile);
        }
 
+       /* In debugging mode, print what we read */
        if (debug)
        {
                int                     i;
@@ -882,10 +883,7 @@ getTimelineHistory(TimeLineID tli, bool is_source, int *nentries)
                else
                        pg_log_debug("Target timeline history:");
 
-               /*
-                * Print the target timeline history.
-                */
-               for (i = 0; i < targetNentries; i++)
+               for (i = 0; i < *nentries; i++)
                {
                        TimeLineHistoryEntry *entry;