Re: B-tree page deletion boundary cases

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Nikhil Sontakke <nikkhils@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2012-04-23T15:52:21Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Reduce impact of btree page reuse on Hot Standby by fixing off-by-1 error.

  2. Respect Hot Standby controls while recycling btree index pages.

On Sun, Apr 22, 2012 at 12:13:34AM +0530, Nikhil Sontakke wrote:
> Was wondering if there's a similar bug which gets triggered while using
> VACUUM FULL. See for instance this thread:
> 
> http://postgresql.1045698.n5.nabble.com/index-corruption-in-PG-8-3-13-td4257589.html
> 
> This issue has been reported on-off from time to time and in most cases
> VACUUM or VACUUM FULL appears to be involved. We have usually attributed it
> to hardware issues and reindex has been recommended by default as a
> solution/work around..

I do not perceive much similarity.  The bug I've raised can produce wrong
query results transiently.  It might permit injecting a tuple into the wrong
spot in the tree, yielding persistent wrong results.  It would not introduce
tree-structural anomalies like sibling pointers directed at zeroed pages or
internal pages in an 1-level tree.  Given the symptoms you reported, I share
Robert's suspicion of WAL replay in your scenario.