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