Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> Now that I actually tried this, it turned out that this problem is not
> so simple. vacuum.c already has logic to use conditional acquire of the
> table-level lock, and if not available it skips the table:
> LOG: skipping vacuum of "pg_shdepend" --- lock not available
> so an autovacuum worker is never "stuck" behind another worker trying to
> vacuum the table.
Hmm ... but then, how do we have the observed symptom of several workers
concurrently trying to process the same shared catalog? Seems like all
but one should fall out at this point.
regards, tom lane