Alvaro Herrera <[EMAIL PROTECTED]> writes: > Tom Lane wrote: >> To resolve this I think we need a clearer definition of the autovac >> launcher's role in life. I see that it is attached to shared memory; >> is it supposed to be able to execute transactions or otherwise do >> anything the bgwriter might have to clean up after?
> No; the launcher is attached to shared memory, but it doesn't connect to > databases and it doesn't execute transactions either. In fact, the > launcher cannot do anything when the postmaster is not running (or when > it is not in a state where it doesn't want to start processes, anyway), > because it (the launcher) is only capable of sending signals to > postmaster (apart from that, it ocasionally grabs lwlocks, reads the > pg_database flat file, pgstats, and the Xid counter in shared memory). > It doesn't write anything. I think it is perfectly acceptable to have > the launcher shut down in parallel with bgwriter. [ after sleeping on it... ] That's probably okay as far as bgwriter goes, but I think it's a bad idea for anything connected to shared memory to outlive the postmaster. To do so opens risks that some platforms might treat the postmaster's shmctl(IPC_RMID) differently than others. So I want the postmaster to not exit until it's seen the launcher quit. It's quite easy to make this happen if we treat the launcher more like a backend, and don't start bgwriter shutdown till it's gone. (I have a patch I've been testing that does it that way.) Allowing the two to shut down in parallel seems more complex, though if you see a reasonable way to make it work, propose a patch. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly