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 |
- [HACKERS] pg_autovacuum startup from /etc/rc fails af... Jonathan Beit-Aharon
- Re: [HACKERS] pg_autovacuum startup from /etc/rc... Jim C. Nasby