Heikki Linnakangas <hlinnakangas@vmware.com> writes:
> Good point. Normally, we expect the checksum to match on all pages that
> we read during WAL replay, because full page writes will initialize any
> page that is modified to an untorn state, before it's ever read. But we
> can't rely on that in the extra read that btree_xlog_vacuum() does.
But it's not an "extra" read. It's replicating a read that was done
on the master in the btvacuumpage() scan. AFAICS the only way to fail
on the slave and not the master is if the slave has inconsistent data,
in which case you're at hazard of failing anyway.
>> Now, you could argue that that shouldn't be the case because we're only
>> entering that codepath once STANDBY_SNAPSHOT_READY and you might be
>> right...
> I don't think that saves us. standbyMode can be STANDBY_SNAPSHOT_READY,
> before we reach consistency. Adding a check for reachedConsistency,
> though, ought to fix it.
Huh? Surely we're not letting queries in until we're consistent.
regards, tom lane