From a7721e56d69d8de631a0d6689059097d17380304 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Wed, 19 Jul 2023 22:14:42 +0200 Subject: [PATCH v2] pg_upgrade: include additional detail in cluster check If the cluster fails the pg_controldata check for clean shut down we only reported that it did so, not why. Fix by including the state reported by pg_controldata in the error message to assist the user in debugging the upgrade. Discussion: https://postgr.es/m/E0D5EA16-A085-4753-8DDC-C7055048B439@yesql.se --- src/bin/pg_upgrade/controldata.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/bin/pg_upgrade/controldata.c b/src/bin/pg_upgrade/controldata.c index 9071a6fd45..4beb65ab22 100644 --- a/src/bin/pg_upgrade/controldata.c +++ b/src/bin/pg_upgrade/controldata.c @@ -149,22 +149,23 @@ get_control_data(ClusterInfo *cluster, bool live_check) * the server was shut down cleanly, from the controldata * perspective. */ - /* remove leading spaces */ + /* Remove trailing newline and leading spaces */ + (void) pg_strip_crlf(p); while (*p == ' ') p++; - if (strcmp(p, "shut down in recovery\n") == 0) + if (strcmp(p, "shut down in recovery") == 0) { if (cluster == &old_cluster) pg_fatal("The source cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary."); else pg_fatal("The target cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary."); } - else if (strcmp(p, "shut down\n") != 0) + else if (strcmp(p, "shut down") != 0) { if (cluster == &old_cluster) - pg_fatal("The source cluster was not shut down cleanly."); + pg_fatal("The source cluster was not shut down cleanly, state reported as: \"%s\"", p); else - pg_fatal("The target cluster was not shut down cleanly."); + pg_fatal("The target cluster was not shut down cleanly, state reported as: \"%s\"", p); } got_cluster_state = true; } -- 2.32.1 (Apple Git-133)