On Tue, Mar 1, 2011 at 10:43 AM, David Christensen <david@endpoint.com> wrote:
> Was this cluster upgraded to 8.4.4 from 8.4.0? It sounds to me like a known bug in 8.4.0 which was fixed by this
commit:
>
> commit 7fc7a7c4d082bfbd579f49e92b046dd51f1faf5f
> Author: Tom Lane <tgl@sss.pgh.pa.us>
> Date: Mon Aug 24 02:18:32 2009 +0000
>
> Fix a violation of WAL coding rules in the recent patch to include an
> "all tuples visible" flag in heap page headers. The flag update *must*
> be applied before calling XLogInsert, but heap_update and the tuple
> moving routines in VACUUM FULL were ignoring this rule. A crash and
> replay could therefore leave the flag incorrectly set, causing rows
> to appear visible in seqscans when they should not be. This might explain
> recent reports of data corruption from Jeff Ross and others.
>
> In passing, do a bit of editorialization on comments in visibilitymap.c.
>
> oy:postgresql machack$ git describe --tag 7fc7a7c4d082bfbd579f49e92b046dd51f1faf5f
> REL8_4_0-190-g7fc7a7c
>
> If the flag got twiddled while running as 8.4.0, the incorrect PD_ALL_VISIBLE flag would (obviously) not be fixed by
theupgrade to 8.4.4. (Is this a separate issue?)
Yes, it's a different issue. I observed it on 8.4.2.
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center