pg_createsubscriber: Only --recovery-timeout controls the end of recovery process

Peter Eisentraut <peter@eisentraut.org>

Commit: 04c8634c0c4d636540c9283efdd695558403dc4e
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2024-06-17T07:42:51Z
Releases: 17.0
pg_createsubscriber: Only --recovery-timeout controls the end of recovery process

It used to check if the target server is connected to the primary
server (send required WAL) to rapidly react when the process won't
succeed.  This code is not enough to guarantee that the recovery
process will complete.  There is a window between the walreceiver
shutdown and the pg_is_in_recovery() returns false that can reach
NUM_CONN_ATTEMPTS attempts and fails.

Instead, rely only on the --recovery-timeout option to give up the
process after the specified number of seconds.

This should help with buildfarm failures on slow machines.

Author: Euler Taveira <euler.taveira@enterprisedb.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Discussion: https://www.postgresql.org/message-id/776c5cac-5ef5-4001-b1bc-5b698bc0c62a%40app.fastmail.com

Files

Documentation touched

Discussion