FWD: bug report: index is not a btree

Started by Greg Sabino Mullaneover 20 years ago3 messagesbugs
Jump to latest
#1Greg Sabino Mullane
greg@turnstep.com

The following bug has been logged online:

Bug reference: 1802
Logged by: Jenny Wang
Email address: y6108@vip.sina.com
PostgreSQL version: 7.3.10
Operating system: RedHat 8
Description: index is not a btree
Details:

1 $ cd <prefix>
$ cd bin

2 $ ./postmaster -D data &
$ ./psql TEST
TEST=#create table a(col1 int primary key);

3 $ kill -9 <postmaster pid>

4 $ ./postmaster -D data &
$ ./psql TEST
TEST=#insert into a values(1);

ERROR: Index a_pkey is not a btree

the file of a_pkey has size 8k, and is all zero.

#2Michael Fuhr
mike@fuhr.org
In reply to: Greg Sabino Mullane (#1)
Re: FWD: bug report: index is not a btree

On Wed, Aug 03, 2005 at 09:46:23AM -0000, Greg Sabino Mullane wrote:

2 $ ./postmaster -D data &
$ ./psql TEST
TEST=#create table a(col1 int primary key);

3 $ kill -9 <postmaster pid>

4 $ ./postmaster -D data &
$ ./psql TEST
TEST=#insert into a values(1);

ERROR: Index a_pkey is not a btree

the file of a_pkey has size 8k, and is all zero.

I can duplicate this in 7.3.10, but only if the postmaster does a
redo when it restarts. If I do a checkpoint before killing the
postmaster then the insert succeeds.

I couldn't duplicate this behavior in 7.4.8, 8.0.3, or HEAD. The
7.4 Release Notes have an item about making B-tree indexes fully
WAL-safe, so I wonder if that fixes the problem.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Michael Fuhr (#2)
Re: FWD: bug report: index is not a btree

Michael Fuhr <mike@fuhr.org> writes:

I can duplicate this in 7.3.10, but only if the postmaster does a
redo when it restarts. If I do a checkpoint before killing the
postmaster then the insert succeeds.
I couldn't duplicate this behavior in 7.4.8, 8.0.3, or HEAD. The
7.4 Release Notes have an item about making B-tree indexes fully
WAL-safe, so I wonder if that fixes the problem.

Yeah. Before 7.4 there was no WAL record emitted for the act of
initializing the btree metapage, so this behavior is pretty much
exactly what you'd expect. It's possible that we could backport
that single change, but if memory serves there were a number of
other ways in which btree index build violated the WAL principle,
so I'm not sure there's much point. You more or less had to
checkpoint to be sure the new index is fully down to disk.

regards, tom lane