Re: heap_abort_speculative() sets xmin to Invalid* without HEAP_XMIN_INVALID - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: heap_abort_speculative() sets xmin to Invalid* without HEAP_XMIN_INVALID
Date
Msg-id 20200723214909.GA19828@alvherre.pgsql
Whole thread Raw
In response to heap_abort_speculative() sets xmin to Invalid* without HEAP_XMIN_INVALID  (Andres Freund <andres@anarazel.de>)
Responses Re: heap_abort_speculative() sets xmin to Invalid* without HEAP_XMIN_INVALID  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-hackers
On 2020-Jul-23, Andres Freund wrote:

> I think we should change heap_abort_speculative() to set
> HEAP_XMIN_INVALID in master.

+1

> But we can't really do anything about
> existing tuples without it - therefore we will have to forever take care
> about encountering that combination :(.
> 
> Perhaps we should instead or additionally make
> HeapTupleHeaderXminInvalid() explicitly check for InvalidTransactionId?

+1 for doing it as an additional fix, with a fat comment somewhere
explaining where such tuples would come from.

Additionally, but perhaps not very usefully, maybe we could have a
mechanism to inject such tuples so that code can be hardened against the
condition.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Making CASE error handling less surprising
Next
From: Peter Geoghegan
Date:
Subject: Re: Default setting for enable_hashagg_disk