Force idle_in_transaction_session_timeout off in pg_dump and autovacuum.
We disable statement_timeout and lock_timeout during dump and restore, to
prevent any global settings that might exist from breaking routine backups.
Commit c6dda1f48
should have added idle_in_transaction_session_timeout to
that list, but failed to.
Another place where these timeouts get turned off is autovacuum. While
I doubt an idle timeout could fire there, it seems better to be safe than
sorry.
pg_dump issue noted by Bernd Helmle, the other one found by grepping.
Report: <352F9B77DB5D3082578D17BB@eje.land.credativ.lan>
This commit is contained in:
parent
f0688d6e6c
commit
8383486f10
|
@ -538,11 +538,13 @@ AutoVacLauncherMain(int argc, char *argv[])
|
||||||
SetConfigOption("zero_damaged_pages", "false", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("zero_damaged_pages", "false", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force statement_timeout and lock_timeout to zero to avoid letting these
|
* Force settable timeouts off to avoid letting these settings prevent
|
||||||
* settings prevent regular maintenance from being executed.
|
* regular maintenance from being executed.
|
||||||
*/
|
*/
|
||||||
SetConfigOption("statement_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("statement_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
SetConfigOption("lock_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("lock_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
SetConfigOption("idle_in_transaction_session_timeout", "0",
|
||||||
|
PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force default_transaction_isolation to READ COMMITTED. We don't want
|
* Force default_transaction_isolation to READ COMMITTED. We don't want
|
||||||
|
@ -1551,11 +1553,13 @@ AutoVacWorkerMain(int argc, char *argv[])
|
||||||
SetConfigOption("zero_damaged_pages", "false", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("zero_damaged_pages", "false", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force statement_timeout and lock_timeout to zero to avoid letting these
|
* Force settable timeouts off to avoid letting these settings prevent
|
||||||
* settings prevent regular maintenance from being executed.
|
* regular maintenance from being executed.
|
||||||
*/
|
*/
|
||||||
SetConfigOption("statement_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("statement_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
SetConfigOption("lock_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
SetConfigOption("lock_timeout", "0", PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
SetConfigOption("idle_in_transaction_session_timeout", "0",
|
||||||
|
PGC_SUSET, PGC_S_OVERRIDE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force default_transaction_isolation to READ COMMITTED. We don't want
|
* Force default_transaction_isolation to READ COMMITTED. We don't want
|
||||||
|
|
|
@ -2859,11 +2859,12 @@ _doSetFixedOutputState(ArchiveHandle *AH)
|
||||||
{
|
{
|
||||||
RestoreOptions *ropt = AH->public.ropt;
|
RestoreOptions *ropt = AH->public.ropt;
|
||||||
|
|
||||||
/* Disable statement_timeout since restore is probably slow */
|
/*
|
||||||
|
* Disable timeouts to allow for slow commands, idle parallel workers, etc
|
||||||
|
*/
|
||||||
ahprintf(AH, "SET statement_timeout = 0;\n");
|
ahprintf(AH, "SET statement_timeout = 0;\n");
|
||||||
|
|
||||||
/* Likewise for lock_timeout */
|
|
||||||
ahprintf(AH, "SET lock_timeout = 0;\n");
|
ahprintf(AH, "SET lock_timeout = 0;\n");
|
||||||
|
ahprintf(AH, "SET idle_in_transaction_session_timeout = 0;\n");
|
||||||
|
|
||||||
/* Select the correct character set encoding */
|
/* Select the correct character set encoding */
|
||||||
ahprintf(AH, "SET client_encoding = '%s';\n",
|
ahprintf(AH, "SET client_encoding = '%s';\n",
|
||||||
|
|
|
@ -1022,6 +1022,8 @@ setup_connection(Archive *AH, const char *dumpencoding,
|
||||||
ExecuteSqlStatement(AH, "SET statement_timeout = 0");
|
ExecuteSqlStatement(AH, "SET statement_timeout = 0");
|
||||||
if (AH->remoteVersion >= 90300)
|
if (AH->remoteVersion >= 90300)
|
||||||
ExecuteSqlStatement(AH, "SET lock_timeout = 0");
|
ExecuteSqlStatement(AH, "SET lock_timeout = 0");
|
||||||
|
if (AH->remoteVersion >= 90600)
|
||||||
|
ExecuteSqlStatement(AH, "SET idle_in_transaction_session_timeout = 0");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Quote all identifiers, if requested.
|
* Quote all identifiers, if requested.
|
||||||
|
|
Loading…
Reference in New Issue