Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> Ooh, interesting bug.
> As a workaround I suggest connecting to all of your databases except one
> and disabling autovacuum for pg_shdepend. Then the table will be
> processed in the one database where you left it enabled, and the other
> workers will take care of the rest of the tables.
> I'll think about a real fix.
Seems like a simple answer is to consider all shared catalogs to "belong"
to only one database for autovac purposes, ie, only autovac workers in
that database would consider vacuuming them. The problem IIUC is that the
interlock against multiple workers glomming onto the same table only
considers other workers in the same DB.
The fun part might be to decide which DB that is. I don't think we should
depend on any of the standard databases always being there.
regards, tom lane