]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
pg_upgrade: Upgrade an Assert to a real 'if' test
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 23 Mar 2022 18:23:51 +0000 (19:23 +0100)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 23 Mar 2022 18:23:51 +0000 (19:23 +0100)
It seems possible for the condition being tested to be true in
production, and nobody would never know (except when some data
eventually becomes corrupt?).

Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m//202109040001.zky3wgv2qeqg@alvherre.pgsql

src/bin/pg_rewind/parsexlog.c

index 7cfa169e9b98d2abf26f85fa34cae843eda624b8..3ed2a2e811e85645677e47d491b1a77fc314a426 100644 (file)
@@ -102,7 +102,9 @@ extractPageMap(const char *datadir, XLogRecPtr startpoint, int tliIndex,
         * If 'endpoint' didn't point exactly at a record boundary, the caller
         * messed up.
         */
-       Assert(xlogreader->EndRecPtr == endpoint);
+       if (xlogreader->EndRecPtr != endpoint)
+               pg_fatal("end pointer %X/%X is not a valid end point; expected %X/%X",
+                                LSN_FORMAT_ARGS(endpoint), LSN_FORMAT_ARGS(xlogreader->EndRecPtr));
 
        XLogReaderFree(xlogreader);
        if (xlogreadfd != -1)