[COMMITTERS] pgsql: Make PostgresNode.pm check server status more carefully. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Make PostgresNode.pm check server status more carefully.
Date
Msg-id E1d23MT-0008LA-Dr@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/9d5f0718d75772265b476e41f8a7e97dd8856710

Modified Files
--------------
src/test/perl/PostgresNode.pm | 42 ++++++++++++++++++++++++++----------------
1 file changed, 26 insertions(+), 16 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Make PostgresNode::append_conf append a newline automatically.
Next
From: Andrew Dunstan
Date:
Subject: [COMMITTERS] pgsql: Fix TAP infrastructure to support Mingw better