pgsql: Fix "failed to re-find parent key" btree VACUUM failure by

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix "failed to re-find parent key" btree VACUUM failure by
Date: 2006-11-01 19:43:17
Message-ID: 20061101194317.CF5E69FB571@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Fix "failed to re-find parent key" btree VACUUM failure by revising page
deletion code to avoid the case where an upper-level btree page remains "half
dead" for a significant period of time, and to block insertions into a key
range that is in process of being re-assigned to the right sibling of the
deleted page's parent. This prevents the scenario reported by Ed L. wherein
index keys could become out-of-order in the grandparent index level.

Since this is a moderately invasive fix, I'm applying it only to HEAD.
The bug exists back to 7.4, but the back branches will get a different patch.

Modified Files:
--------------
pgsql/src/backend/access/nbtree:
README (r1.13 -> r1.14)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/README.diff?r1=1.13&r2=1.14)
nbtinsert.c (r1.144 -> r1.145)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtinsert.c.diff?r1=1.144&r2=1.145)
nbtpage.c (r1.100 -> r1.101)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtpage.c.diff?r1=1.100&r2=1.101)
nbtree.c (r1.152 -> r1.153)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtree.c.diff?r1=1.152&r2=1.153)
nbtxlog.c (r1.38 -> r1.39)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/nbtree/nbtxlog.c.diff?r1=1.38&r2=1.39)
pgsql/src/include/access:
nbtree.h (r1.105 -> r1.106)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/nbtree.h.diff?r1=1.105&r2=1.106)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-11-01 19:50:03 pgsql: Fix "failed to re-find parent key" btree VACUUM failure by
Previous Message Tom Lane 2006-11-01 15:59:31 pgsql: pg_restore failed on tar-format archives if they contained large