Re: "failed to find parent tuple for heap-only tuple" error as an ERRCODE_DATA_CORRUPTION ereport()

From: David Steele <david(at)pgmasters(dot)net>
To: Peter Geoghegan <pg(at)bowt(dot)ie>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: "failed to find parent tuple for heap-only tuple" error as an ERRCODE_DATA_CORRUPTION ereport()
Date: 2018-03-01 19:15:41
Message-ID: 381ee03e-f650-df30-1581-8febaa83f9e6@pgmasters.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 12/15/17 5:31 PM, Peter Geoghegan wrote:
> Commit d70cf811, from 2014, promoted an Assert() within
> IndexBuildHeapScan() to a "can't happen" elog() error, in order to
> detect when a parent tuple cannot be found for some heap-only tuple --
> if this happens, then it indicates corruption. I think that we should
> make it a full ereport(), with an errcode of ERRCODE_DATA_CORRUPTION,
> to match what Andres just added to code that deals with freezing (he
> promoted Assert()s to errors, just like the 2014 commit, though he
> went as far as making them ereport()s to begin with). Attached patch
> does this.
>
> I propose a backpatch to 9.3, partially for the sake of tools like
> amcheck, where users may only be on the lookout for
> ERRCODE_DATA_CORRUPTION and ERRCODE_INDEX_CORRUPTED.

This patch applies, passes testing, and appears very straight-forward to
me. Are there any tests for these conditions currently, or are you only
doing that in amcheck?

--
-David
david(at)pgmasters(dot)net

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2018-03-01 19:17:30 Re: [HACKERS] Moving relation extension locks out of heavyweight lock manager
Previous Message Robert Haas 2018-03-01 19:13:39 Re: [HACKERS] path toward faster partition pruning