Re: Completely broken replica after PANIC: WAL contains references to invalid pages
От | Simon Riggs |
---|---|
Тема | Re: Completely broken replica after PANIC: WAL contains references to invalid pages |
Дата | |
Msg-id | CA+U5nMKMSkcxr5HjrTzXtcMybK-0DAFQhOJ8G2KsvZMGtgULGA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Completely broken replica after PANIC: WAL contains references to invalid pages (Andres Freund <andres@2ndquadrant.com>) |
Ответы |
Re: Completely broken replica after PANIC: WAL contains
references to invalid pages
|
Список | pgsql-bugs |
On 30 March 2013 17:21, Andres Freund <andres@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
В списке pgsql-bugs по дате отправления: