On 2013-08-02 22:25:36 -0400, Alvaro Herrera wrote:
> Andres Freund escribió:
> > On 2013-08-02 18:17:43 -0400, Alvaro Herrera wrote:
> > > Alvaro Herrera escribió:
> > > 
> > > > As it turns out, I have a patched slru.c that adds a new function to
> > > > verify whether a page exists on disk.  I created this for the commit
> > > > timestamp module, for the BDR branch, but I think it's what we need
> > > > here.
> > > 
> > > Here's a patch that should fix the problem.  Jesse, if you're able to
> > > test it, please give it a run and let me know if it works for you.  I
> > > was able to upgrade an installation containing a problem that should
> > > reproduce yours.
> > 
> > Wouldn't it be easier to make pg_upgrade fudge pg_control to have a safe
> > NextMultiXactId/Offset using pg_resetxlog?
> 
> I don't understand.  pg_upgrade already fudges pg_control to have a safe
> next multi, namely the same value used by the old cluster.  The reason
> to preserve this value is that we must ensure no older value is
> consulted in pg_multixact: those might be present in tuples that were
> locked in the old cluster.  (To be precise, this is the value to set as
> oldest multi, not next multi.  But of course, the next multi must be
> greater than that one.)

I am suggesting to set them to a greater value than in the old cluster,
computed so it's guaranteed that they are proper page boundaries. Then
the situation described upthread shouldn't occur anymore, right?

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to