Thread: pg_autovacuum taking locks on multiple tables at the same time

pg_autovacuum taking locks on multiple tables at the same time

From
Hari Bhaskaran
Date:
This is causing a headache for us, if that is indeed true.

So we have code that goes like

begin;
lock table t1;
lock table t2;
...
...

Of course within our own code, we do make sure things are always locked
in the same order (so we wouldn't create deadlocks). We do, however, end
up in deadlocks with pg_autovacuum which seem to take lock in different
order.

Why does pg_autovacuum need locks on more than one table at a time?
(there tables in question are NOT related to each other via foriegn keys)


Re: pg_autovacuum taking locks on multiple tables at the same time

From
Tom Lane
Date:
Hari Bhaskaran <hbhaskaran@gmail.com> writes:
> Why does pg_autovacuum need locks on more than one table at a time?

It doesn't --- unless maybe you are considering system catalogs, in
which case I'd wonder why you need exclusive lock on a catalog.

If you can prove the contrary, let's see a test case.

            regards, tom lane