pgsql-server: Fix bug introduced into _bt_getstackbuf() on 2003-Feb-21:

From: tgl(at)svr1(dot)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql-server: Fix bug introduced into _bt_getstackbuf() on 2003-Feb-21:
Date: 2004-08-17 23:15:34
Message-ID: 20040817231534.19FBB5E46C3@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Fix bug introduced into _bt_getstackbuf() on 2003-Feb-21: the initial
value of 'start' could be past the end of the page, if the page was
split by some concurrent inserting process since we visited it. In
this situation the code could look at bogus entries and possibly find
a match (since after all those entries still contain what they had
before the split). This would lead to 'specified item offset is too large'
followed by 'PANIC: failed to add item to the page', as reported by Joe
Conway for scenarios involving heavy concurrent insertion activity.

Modified Files:
--------------
pgsql-server/src/backend/access/nbtree:
nbtinsert.c (r1.113 -> r1.114)
(http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/backend/access/nbtree/nbtinsert.c.diff?r1=1.113&r2=1.114)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2004-08-17 23:16:08 pgsql-server: Fix bug introduced into _bt_getstackbuf() on 2003-Feb-21:
Previous Message Tom Lane 2004-08-17 18:47:09 pgsql-server: Standardize on the assumption that the arguments of a