summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas2019-03-18 19:21:09 +0000
committerRobert Haas2019-03-18 19:22:42 +0000
commit1459e84cb2e57649627753ad1279428d35590df6 (patch)
tree6d0f78110d7b4fc4138fcd1c9b7777b14239e821
parent6776142a07afb4c28961f27059d800196902f5f1 (diff)
Don't auto-restart per-database autoprewarm workers.
We should try to prewarm each database only once. Otherwise, if prewarming fails for some reason, it will just keep retrying in an infnite loop. This can happen if, for example, the database has been dropped. The existing code was intended to implement the try-once behavior, but failed to do so because it neglected to set worker.bgw_restart_time to BGW_NEVER_RESTART. Mithun Cy, per a report from Hans Buschmann Discussion: http://postgr.es/m/CA+hUKGKpQJCWcgyy3QTC9vdn6uKAR_8r__A-MMm2GYfj45caag@mail.gmail.com
-rw-r--r--contrib/pg_prewarm/autoprewarm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index 9cc4b2dc837..5378ff0141d 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -840,6 +840,7 @@ apw_start_database_worker(void)
worker.bgw_flags =
BGWORKER_SHMEM_ACCESS | BGWORKER_BACKEND_DATABASE_CONNECTION;
worker.bgw_start_time = BgWorkerStart_ConsistentState;
+ worker.bgw_restart_time = BGW_NEVER_RESTART;
strcpy(worker.bgw_library_name, "pg_prewarm");
strcpy(worker.bgw_function_name, "autoprewarm_database_main");
strcpy(worker.bgw_name, "autoprewarm worker");