]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix autovacuum for shared relations
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 10 May 2016 19:23:54 +0000 (16:23 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 10 May 2016 19:23:54 +0000 (16:23 -0300)
commit92ebe509e381002f62faeeeb9007723409725323
treee98ff9cc2a9ae0c4336b4a642382c4b65087df05
parentcd5a6521fa8e9d51090330eb500157079fda1381
Fix autovacuum for shared relations

The table-skipping logic in autovacuum would fail to consider that
multiple workers could be processing the same shared catalog in
different databases.  This normally wouldn't be a problem: firstly
because autovacuum workers not for wraparound would simply ignore tables
in which they cannot acquire lock, and secondly because most of the time
these tables are small enough that even if multiple for-wraparound
workers are stuck in the same catalog, they would be over pretty
quickly.  But in cases where the catalogs are severely bloated it could
become a problem.

Backpatch all the way back, because the problem has been there since the
beginning.

Reported by Ondřej Světlík

Discussion: https://www.postgresql.org/message-id/572B63B1.3030603%40flexibee.eu
https://www.postgresql.org/message-id/572A1072.5080308%40flexibee.eu
src/backend/postmaster/autovacuum.c