postgres.git / summary / log / commit / refs

commit    efe44fb2f685032ab73ec99cd39712a1ad458c3c
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Wed Mar 23 18:23:51 2022 +0000
First released in: 15.0, 10.21, 11.16, 12.11, 13.7, 14.3

    pg_upgrade: Upgrade an Assert to a real 'if' test
    
    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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_rewind/parsexlog.c b/src/bin/pg_rewind/parsexlog.c index 922ae3daaec..5c08d46d2a4 100644 --- a/src/bin/pg_rewind/parsexlog.c +++ b/src/bin/pg_rewind/parsexlog.c @@ -106,7 +106,11 @@ 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", + (uint32) (endpoint >> 32), (uint32) (endpoint), + (uint32) (xlogreader->EndRecPtr >> 32), (uint32) + (xlogreader->EndRecPtr)); XLogReaderFree(xlogreader); if (xlogreadfd != -1) [parent: 199cd7b59a16]