B-tree crash recovery error in 8.3 beta 2

From: Koichi Suzuki <suzuki(dot)koichi(at)oss(dot)ntt(dot)co(dot)jp>
To: pgsql-bugs(at)postgresql(dot)org
Subject: B-tree crash recovery error in 8.3 beta 2
Date: 2007-11-16 05:42:42
Message-ID: 473D2DD2.2010506@oss.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

I've found that B-tree crash recovery in 8.3 beta2 could make some
tuples invisible through B-tree. They're visible if we read using but
Seq-Scan. This happens in 8.3 beta2, but not in 8.2.4. Here's how it
happens.

1. Create b-tree for a text type column.
2. Make B-tree three-story, that is, root-intermediate-leaf. Insert
tuples sufficient to construct such B-tree.
3. No checkpoint should occur during 2.
4. Kill postmaster.
5. Restart postmaster. Crash recovery will be done.
6. Tuples with column values less than HIKEY becomes invisible through
Idx-scan, still visible through Seq-scan.

From the dump of B-tree, it seems that HIKEY value is cleared (only
tuple header is left). No problem was found in the case of integer or
numeric type columns.

Attached is the shell script, postgresql.conf (almost the default one)
to reproduce the problem, and the log of the problem reproduction.

--
Koichi Suzuki

Attachment Content-Type Size
reproduce_text2_en.sh application/x-shellscript 2.5 KB
reproduce_text2.log text/x-log 6.6 KB
postgresql.conf text/plain 16.4 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Koichi Suzuki 2007-11-16 05:57:32 B-tree crash recovery error in 8.3 beta 2
Previous Message Christian Ullrich 2007-11-16 05:34:01 Re: BUG #3750: Invalid frontend message type 112