postgres.git / summary / log / commit / refs

commit    fc8b39a46eb7132edc0165f23b738a2292ee9ca9
Author:   Robert Haas <rhaas@postgresql.org>
Date:     Mon Mar 18 19:21:09 2019 +0000
First released in: 12.0, 11.3

    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


contrib/pg_prewarm/autoprewarm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c index cc5e2dd89cd..3bd0010bf8b 100644 --- a/contrib/pg_prewarm/autoprewarm.c +++ b/contrib/pg_prewarm/autoprewarm.c @@ -844,6 +844,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"); [parent: dcf2a0db8529]