Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Sergey Konoplev <gray(dot)ru(at)gmail(dot)com>, matioli(dot)matheus(at)gmail(dot)com, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>, Maxim Boguk <maxim(dot)boguk(at)gmail(dot)com>, Максим Панченко <Panchenko(at)gw(dot)tander(dot)ru>, Сизов Сергей Павлович <sizov_sp(at)gw(dot)tander(dot)ru>
Subject: Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages
Date: 2014-01-13 21:36:59
Message-ID: 20140113213659.GC5838@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On 2014-01-13 16:25:48 -0500, Tom Lane wrote:
> > I thought about that approach at first as well, but I am not so sure
> > it's sufficient. Isn't it quite possible that we'd end up reading a page
> > that was *partially* written during a crash and due to that has a
> > corrupted checksum?
>
> If we did, then either the master would also have failed (so we'd not
> be here), or there's a discrepancy between master and slave data,
> in which case we've got bigger problems than this.

If we crashed during replay and then restart replaying it might, at
least without the STANDBY_SNAPSHOT_READY check. I think.

XLOG_BTREE_VACUUM block 10, lastVacuumed 1
XLOG_BTREE_INSERT_SPLIT
XLOG_BTREE_INSERT_LEAF block 5
XLOG_BTREE_VACUUM block 10, lastVacuumed 1
-- crash
if we now restart replaying block 5 can be in just about any state.

... tinker ...

Hm, the standbyMode check isn't sufficient, it's independent from other
consistency checks (like minRecoveryPoint). But we can extend that check
in the redo routine to check for full consistency, which should be fine
since there won't be any relevant pins on buffers before that anyway.

> The addition of a bufmgr function to only return an already-in-cache
> page is a possible future performance enhancement, but I do not care
> for it as a bug fix that has to be back-patched as far as 9.0.

Yea, the only argument I see is that it actually might end up being
simpler, that's why I brought it up.

Greetings,

Andres Freund

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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2014-01-13 21:40:22 Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages
Previous Message Tom Lane 2014-01-13 21:36:41 Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-01-13 21:40:22 Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages
Previous Message Tom Lane 2014-01-13 21:36:41 Re: Hot standby 9.2.6 -> 9.2.6 PANIC: WAL contains references to invalid pages