]> granicus.if.org Git - postgresql/commit
Make PostgresNode.pm check server status more carefully.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 22 Apr 2017 22:18:25 +0000 (18:18 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 22 Apr 2017 22:18:25 +0000 (18:18 -0400)
commit7d68f2281a4b56834c8e5648fc7da0b73b674c45
treed70b3308d5150487d113de5c485fcece81c4d261
parent8a19c1a3736c6b928ebc3503edaf0bd289366bcc
Make PostgresNode.pm check server status more carefully.

PostgresNode blithely ignored the exit status of pg_ctl, and in general
made no effort to be sure that the server was running when it should be.
This caused it to miss server crashes, which is a serious shortcoming
in a test scaffold.  Make it complain if pg_ctl fails, and modify the
start and stop logic to complain if the server doesn't start, or doesn't
stop, when expected.

Also, have it turn off the "restart_after_crash" configuration parameter
in created clusters, as bitter experience has shown that leaving that on
can mask crashes too.

We might at some point need variant functions that allow for, eg,
server start failure to be expected.  But no existing test case appears
to want that, and it surely shouldn't be the default behavior.

Note that this *will* break the buildfarm, as it will expose known
bugs that the previous testing failed to.  I'm committing it despite
that, to verify that we get the expected failures in the buildfarm
not just in manual testing.

Back-patch into 9.6 where PostgresNode was introduced.  (The 9.6
branch is not expected to show any failures.)

Discussion: https://postgr.es/m/21432.1492886428@sss.pgh.pa.us
src/test/perl/PostgresNode.pm