Re: pgsql: amcheck: Fix verify_heapam for tuples where xmin or xmax is 0.

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Robert Haas <rhaas(at)postgresql(dot)org>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: amcheck: Fix verify_heapam for tuples where xmin or xmax is 0.
Date: 2023-03-25 22:24:34
Message-ID: CAH2-WzmEabzcPTxSY-NXKH6Qt3FkAPYHGQSe2PtvGgj17ZQkCw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Fri, Mar 24, 2023 at 8:13 AM Robert Haas <rhaas(at)postgresql(dot)org> wrote:
> If we're checking xmin and find that it is invalid (i.e. 0) just
> report that as corruption, similar to what's already done in the
> three cases that seem correct. If we're checking xmax and find
> that's invalid, that's fine: it just means that the tuple hasn't
> been updated or deleted.

What about aborted speculative insertions? See
heap_abort_speculative(), which directly sets the speculatively
inserted heap tuple's xmin to InvalidTransactionId/zero.

It probably does make sense to keep something close to this check --
it just needs to account for speculative insertions to avoid false
positive reports of corruption. We could perform cross-checks against
a tuple whose xmin is InvalidTransactionId/zero to verify that it
really is from an aborted speculative insertion, to the extent that
that's possible. For example, such a tuple can't be a heap-only tuple,
and it can't have any xmax value other than InvalidTransactionId/zero.

--
Peter Geoghegan

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tomas Vondra 2023-03-26 16:48:45 Re: pgsql: Fix netmask handling in inet_minmax_multi_ops
Previous Message Daniel Gustafsson 2023-03-25 21:55:35 pgsql: Add SysCacheGetAttrNotNull for guaranteed not-null attrs

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeff Davis 2023-03-25 22:35:50 Re: Request for comment on setting binary format output per session
Previous Message Daniel Gustafsson 2023-03-25 22:10:46 Re: Refactoring SysCacheGetAttr to know when attr cannot be NULL