Hi,
I'm not a member of this list, so please CC me on responses and discussion.

After a system crash PostgreSQL startup is slow as the database
recovers.  So the db_connect() call from pg_autovacuum terminates as soon as it tries to connect to "template1".

Looking at the README file, I find this note:
    pg_autovacuum does not get started automatically by either the
    postmaster or by pg_ctl.  Similarly, when the postmaster exits, no one
    tells pg_autovacuum.  The result of that is that at the start of the
    next loop, pg_autovacuum will fail to connect to the server and
    exit().  Any time it fails to connect pg_autovacuum exit()s.

So the failure we're experiencing is an unintended result of an intended solution.   Any suggestions on how I can work-around this problem?

Would it make sense to put the first db_connect() call in the init_db_list() routine inside a [configurable repeatition] loop, sleeping after disappointed attempt to connect, and breaking out on success?   That way, I think, when pg_autovacuum is initiated, we assume the postmaster is up, but when the VacuumLoop connection fails, we assume the postmaster went away, and take our exit().

Thanks,
Jonathan

Reply via email to