pg_controldata: Prevent division-by-zero errors
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Mar 2018 16:14:53 +0000 (12:14 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 21 Mar 2018 16:21:23 +0000 (12:21 -0400)
commit4731d848f23e08a9396b4831d13fbb6dd460faf2
tree006382f6eb95b692556b818f5a9e7ef07cbb5153
parent56163004b8b2151db279744b77138d4d90e2d5cb
pg_controldata: Prevent division-by-zero errors

If the control file is corrupted and specifies the WAL segment size
to be 0 bytes, calculating the latest checkpoint's REDO WAL file
will fail with a division-by-zero error.  Show it as "???" instead.

Also reword the warning message a bit and send it to stdout, like the
other pre-existing warning messages.

Add some tests for dealing with a corrupted pg_control file.

Author: Nathan Bossart <bossartn@amazon.com>, tests by me
src/bin/pg_controldata/pg_controldata.c
src/bin/pg_controldata/t/001_pg_controldata.pl