-- Crossposting to pgsql-hackers --
Jan Wieck wrote:
>
> For the record,
>
> Slony-I uses a pg_listener entry as a locking mechanism to prevent
> multiple concurrent slon processes serving the same node. The function
> Async_Unlisten() is used in a backend function that is called during
> slon startup in an attempt to remove stale pg_listener entries left over
> from a PostgreSQL crash. This function scans pg_listener, tries to
> kill(pid, 0) the backends listed in there in order to check if they are
> alive and if not, calls Async_Unlisten() _with that foreign pid_.
>
> This means, that the very functionality we use is gone. What we have to
> find out is if we still need that functionality, or if something else in
> 8.1 does the cleanup for us during postmaster restart already, so that
> we can skip the whole thing.
Just tried it: LISTEN something, sudo killall -9 postmaster, and after
restart the pg_listener entry was still there.
So postmaster doesn't clean up pg_listener, is slon supposed to do that
with a DELETE FROM pg_listener?
Regards,
Andreas