Disable timeouts when running pg_rewind with online source cluster
authorMichael Paquier <michael@paquier.xyz>
Wed, 28 Aug 2019 02:47:35 +0000 (11:47 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 28 Aug 2019 02:47:35 +0000 (11:47 +0900)
commitbe182e4f9e899a531094bee83b14fd434e52f7cb
treef8cb1c50df5fe1ba6a7bc9cc5c4d6bc813440ae9
parentb1907d6882205319822c7452ce6b5e71ee2867be
Disable timeouts when running pg_rewind with online source cluster

In this case, the transfer uses a libpq connection, which is subject to
the timeout parameters set at system level, and this can make the rewind
operation suddenly canceled which is not good for automation.  One
workaround to such issues would be to use PGOPTIONS to enforce the
wanted timeout parameters, but that's annoying, and for example pg_dump,
which can run potentially long-running queries disables all types of
timeouts.

lock_timeout and statement_timeout are the ones which can cause problems
now.  Note that pg_rewind does not use transactions, so disabling
idle_in_transaction_session_timeout is optional, but it feels safer to
do so for the future.

This is back-patched down to 9.5.  idle_in_transaction_session_timeout
is only present since 9.6.

Author: Alexander Kukushkin
Discussion: https://postgr.es/m/CAFh8B=krcVXksxiwVQh1SoY+ziJ-JC=6FcuoBL3yce_40Es5_g@mail.gmail.com
Backpatch-through: 9.5
src/bin/pg_rewind/libpq_fetch.c