On 30 March 2013 17:21, Andres Freund <and...@2ndquadrant.com> wrote:

> So if the xid is later than latestObservedXid we extend subtrans one by
> one. So far so good. But we initialize it in
> ProcArrayApplyRecoveryInfo() when consistency is initially reached:
>                              latestObservedXid = running->nextXid;
>                              TransactionIdRetreat(latestObservedXid);
> Before that subtrans has initially been started up with:
>                         if (wasShutdown)
>                                 oldestActiveXID = 
> PrescanPreparedTransactions(&xids, &nxids);
>                         else
>                                 oldestActiveXID = checkPoint.oldestActiveXid;
> ...
>                         StartupSUBTRANS(oldestActiveXID);
>
> That means its only initialized up to checkPoint.oldestActiveXid. As it
> can take some time till we reach consistency it seems rather plausible
> that there now will be a gap in initilized pages. From
> checkPoint.oldestActiveXid to running->nextXid if there are pages
> inbetween.

That was an old bug.

StartupSUBTRANS() now explicitly fills that gap. Are you saying it
does that incorrectly? How?

-- 
 Simon Riggs                   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