Re: Old row version in hot chain become visible after a freeze

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: "Wood, Dan" <hexpert(at)amazon(dot)com>
Cc: "pgsql-bugs(at)postgresql(dot)org" <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Old row version in hot chain become visible after a freeze
Date: 2017-09-01 00:07:39
Message-ID: CAH2-Wzkx-=QZhNWRKLxHjzWbtEqfwYftSMT0XPwHC26GpvJHeg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, Aug 31, 2017 at 4:20 PM, Wood, Dan <hexpert(at)amazon(dot)com> wrote:
> I was aware of the other one and, in fact, reverted the change just to make sure it wasn’t Involved. A strange coincidence indeed.

FWIW, the enhanced amcheck does actually detect this:

postgres=# select bt_index_check('t_pkey', true);
ERROR: XX000: failed to find parent tuple for heap-only tuple at
(0,3) in table "t"
LOCATION: IndexBuildHeapRangeScan, index.c:2597

The good news is that this happens in a codepath that is also used by REINDEX:

postgres=# reindex index t_pkey ;
ERROR: XX000: failed to find parent tuple for heap-only tuple at
(0,3) in table "t"
LOCATION: IndexBuildHeapRangeScan, index.c:2597

Perhaps the lack of field reports of this error suggests that it's
fairly rare. Very hard to be sure about that, though.

--
Peter Geoghegan

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Geoghegan 2017-09-01 03:25:25 Re: Old row version in hot chain become visible after a freeze
Previous Message Wood, Dan 2017-08-31 23:20:04 Re: Old row version in hot chain become visible after a freeze