Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts - Mailing list pgsql-bugs

From Tom Lane
Subject Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts
Date
Msg-id 18851.1405897900@sss.pgh.pa.us
Whole thread Raw
In response to Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts  (Andres Freund <andres@2ndquadrant.com>)
List pgsql-bugs
I wrote:
> Andres Freund <andres@2ndquadrant.com> writes:
>> If any *single* full table vacuum after that calls
>> vac_update_datfrozenxid() which just needs its datfrozenxid advance by
>> one we're in trouble: vac_truncate_clog() will be called with minMulti =
>> GetOldestMultiXactId().

> Uh, no, the cutoff is GetOldestMultiXactId minus
> vacuum_multixact_freeze_min_age (or the autovac equivalent).

Oh, wait, I see what you're on about: that cutoff doesn't constrain
the global value computed by vac_truncate_clog.  Hmm.

I wonder whether we should change vac_update_relstats so that it only
applies the "relminxid mustn't go backwards" rule as long as relminxid
is sane, ie, not in the future.  If it is in the future, forcibly update
it to the cutoff we actually used.  Likewise for relminmxid.  And I guess
we'd need a similar rule for updating datmin(m)xid.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts
Next
From: Andres Freund
Date:
Subject: Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts