From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Tighten TAP tests' tracking of postmaster state some more. |
Date: | 2022-01-20 22:28:33 |
Message-ID: | E1nAfuz-00081z-Hl@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Tighten TAP tests' tracking of postmaster state some more.
Commits 6c4a8903b et al. had a couple of deficiencies:
* The logic I added to Cluster::start to see if a PID file is present
could be fooled by a stale PID file left over from a previous
postmaster. To fix, if we're not sure whether we expect to find a
running postmaster or not, validate the PID using "kill 0".
* 017_shm.pl has a loop in which it just issues repeated Cluster::start
calls; this will fail if some invocation fails but leaves self->_pid
set. Per buildfarm results, the above fix is not enough to make this
safe: we might have "validated" a PID for a postmaster that exits
immediately after we look. Hence, match each failed start call with
a stop call that will get us back to the self->_pid == undef state.
Add a fail_ok option to Cluster::stop to make this work.
Discussion: https://postgr.es/m/CA+hUKGKV6fOHvfiPt8=dOKzvswjAyLoFoJF1iQXMNpi7+hD1JQ@mail.gmail.com
Branch
------
REL_10_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/1145ad1ac5b7347071adb6186d9b56421b7ab40f
Modified Files
--------------
src/test/perl/PostgresNode.pm | 39 ++++++++++++++++++++++++++++++++++-----
src/test/recovery/t/017_shm.pl | 3 +++
2 files changed, 37 insertions(+), 5 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-01-20 22:30:44 | Re: pgsql: TAP tests: check for postmaster.pid anyway when "pg_ctl start" f |
Previous Message | Tom Lane | 2022-01-20 19:56:07 | Re: pgsql: TAP tests: check for postmaster.pid anyway when "pg_ctl start" f |