From 84d4de97e8d14469974eb488730a13f942aa787a Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Fri, 7 Jun 2019 20:48:39 +0900
Subject: [PATCH] Improve some comments in pg_checksums about the needed clean
 shutdown

It was not clear from the code why it is necessary.  And we need a clean
shutdown to avoid random checksum failures caused by torn pages.

Author: Masahiko Sawada
Discussion: https://postgr.es/m/CAD21AoDum5MbAb7F=pa9dOD1W2tukuDMPzWT7NjZceNoWB_6Qw@mail.gmail.com
---
 src/bin/pg_checksums/pg_checksums.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/bin/pg_checksums/pg_checksums.c b/src/bin/pg_checksums/pg_checksums.c
index 7c7a75cdcd..b8e7c32dba 100644
--- a/src/bin/pg_checksums/pg_checksums.c
+++ b/src/bin/pg_checksums/pg_checksums.c
@@ -475,7 +475,7 @@ main(int argc, char *argv[])
 		exit(1);
 	}
 
-	/* Check if cluster is running */
+	/* Read the control file and check compatibility */
 	ControlFile = get_controlfile(DataDir, &crc_ok);
 	if (!crc_ok)
 	{
@@ -497,6 +497,11 @@ main(int argc, char *argv[])
 		exit(1);
 	}
 
+	/*
+	 * Check if cluster is running.  A clean shutdown is required to avoid
+	 * random checksum failures caused by torn pages.  Note that this doesn't
+	 * guard against someone starting the cluster concurrently.
+	 */
 	if (ControlFile->state != DB_SHUTDOWNED &&
 		ControlFile->state != DB_SHUTDOWNED_IN_RECOVERY)
 	{
-- 
2.50.1