1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

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
This commit is contained in:
Peter Eisentraut
2024-06-17 09:42:51 +02:00
parent 8f1888eb6d
commit 04c8634c0c
3 changed files with 5 additions and 33 deletions

View File

@ -325,13 +325,6 @@ PostgreSQL documentation
connections to the target server should fail.
</para>
<para>
During the recovery process, if the target server disconnects from the
source server, <application>pg_createsubscriber</application> will check a
few times if the connection has been reestablished to stream the required
WAL. After a few attempts, it terminates with an error.
</para>
<para>
Since DDL commands are not replicated by logical replication, avoid
executing DDL commands that change the database schema while running