pgsql: Accept pg_upgraded tuples during multixact freezing

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Accept pg_upgraded tuples during multixact freezing
Date: 2014-01-10 21:08:53
Message-ID: E1W1jK1-0000e3-Ub@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Accept pg_upgraded tuples during multixact freezing

The new MultiXact freezing routines introduced by commit 8e9a16ab8f7
neglected to consider tuples that came from a pg_upgrade'd database; a
vacuum run that tried to freeze such tuples would die with an error such
as
ERROR: MultiXactId 11415437 does no longer exist -- apparent wraparound

To fix, ensure that GetMultiXactIdMembers is allowed to return empty
multis when the infomask bits are right, as is done in other callsites.

Per trouble report from F-Secure.

In passing, fix a copy&paste bug reported by Andrey Karpov from VIVA64
from their PVS-Studio static checked, that instead of setting relminmxid
to Invalid, we were setting relfrozenxid twice. Not an important
mistake because that code branch is about relations for which we don't
use the frozenxid/minmxid values at all in the first place, but seems to
warrants a fix nonetheless.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/423e1211a86df0d0dd8914223137edbfd4d52400

Modified Files
--------------
src/backend/access/heap/heapam.c | 10 ++++++++--
src/backend/catalog/heap.c | 2 +-
2 files changed, 9 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2014-01-10 21:10:58 Re: [COMMITTERS] pgsql: Upgrade to Autoconf 2.69
Previous Message Tom Lane 2014-01-10 21:06:11 Re: [COMMITTERS] pgsql: Upgrade to Autoconf 2.69