int2 unique index malfunction (btree corrupt) - Mailing list pgsql-bugs

From Christof Petig
Subject int2 unique index malfunction (btree corrupt)
Date
Msg-id 37B13D42.B6B7700C@wtal.de
Whole thread Raw
List pgsql-bugs
Dear PostgreSQL wizards,

During development of a CIM program I frequently updated a table by its
primary key (int2 or numeric(3)). A lot of strange messages
'NOTICE:  (transaction aborted): queries ignored until END' alerted me
that something is going wrong.

update foo set val=val+1 where key=:n
generated 'Cannot insert a duplicate key into a unique index'
which is definitely wrong.

Included is a very small (C++) program (Linux, egcs-1.1.1) which
generates the mentioned errors.

It occured with V6.5 as well as with August 2nd's CVS tree.

Sometimes even the initial 'insert's fail, one time I got an
'FATAL 1:  btree: items are out of order (leftmost 0, stack 10, update
1)' error.

It seems there is something wrong with PostgreSQL's internals. Perhaps
this program helps tracking it.

Best Regards,
    Christof

PS: vacuum after the FATAL:
DEBUG:  --Relation test--
DEBUG:  Pages 13: Changed 2, Reapped 13, Empty 0, New 0; Tup 128: Vac
1823, Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 48, MaxLen 48; Re-using:
Free/Avail. Space 92444/86784; EndEmpty/Avail. Pages 0/12. Elapsed 0/0
sec.
DEBUG:  Index test_pkey: Pages 13; Tuples 128: Deleted 1819. Elapsed 0/0
sec.
DEBUG:  Rel test: Pages: 13 --> 1; Tuple(s) moved: 128. Elapsed 0/0 sec.

DEBUG:  Index test_pkey: Pages 13; Tuples 128: Deleted 128. Elapsed 0/0
sec.


Attachment

pgsql-bugs by date:

Previous
From: Christof Petig
Date:
Subject: ecpg generates illegal code, patch included
Next
From: Sezai Yilmaz
Date:
Subject: table list problem.