On 4/27/17 08:41, Michael Paquier wrote: > +$node_slave->promote; > +$node_slave->poll_query_until('postgres', > + "SELECT NOT pg_is_in_recovery()") > + or die "Timed out while waiting for promotion of standby"; > > This reminds me that we should really switch PostgresNode::promote to > use the wait mode of pg_ctl promote, and remove all those polling > queries...
I was going to say: This should all be obsolete already, because pg_ctl promote waits by default. However: Failure to complete promotion within the waiting time does not lead to an error exit, so you will not get a failure if the promotion does not finish. This is probably a mistake. Looking around pg_ctl, I found that this was handled seemingly inconsistently in do_start(), but do_stop() errors when it does not complete. Possible patches for this attached. Perhaps we need a separate exit code in pg_ctl to distinguish general errors from did not finish within timeout? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
0001-pg_ctl-Make-failure-to-complete-operation-a-nonzero-.patch
Description: invalid/octet-stream
0002-Remove-unnecessary-pg_is_in_recovery-calls-in-tests.patch
Description: invalid/octet-stream
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers