Re: BUG #14150: Attempted to delete invisible tuple

From: Peter Geoghegan <pg(at)heroku(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Oskari Saarenmaa <os(at)aiven(dot)io>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Peter Tripp <peter(at)chartio(dot)com>, Virendra Negi <virendra(at)idyllic-software(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #14150: Attempted to delete invisible tuple
Date: 2016-07-06 23:45:01
Message-ID: CAM3SWZSyGEiU38uDs69M02jM7iBXbM7mSjhqiEGR4PUdTcLyHA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Jul 6, 2016 at 4:33 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
>
>> We didn't simply neglect to make heap_abort_speculative() consider
>> TOAST at all, though.
>
> Well, not quite, but nearly. Afaics it currently can only work if the
> toasted columns have been inserted by a different command, before the
> INSERT ON CONFLICT does anything. I don't see how it can work for newly
> inserted toast data. When heap_abort_speculative deletes toast data,
> when would it *ever* not fail if the same command executed the toast
> data?

Maybe we should have a testing option that makes ExecInsert() pretend
that the precheck for a conflict indicated that there wasn't one the
first time through, only (or perhaps randomly make this assumption
with a configurable probability). It would perhaps be useful to
artificially increase the number of conflicts during stress testing.
Just something to consider.

--
Peter Geoghegan

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message aouda.h 2016-07-06 23:46:54 BUG #14232: Possible mistake in the documentation
Previous Message Andres Freund 2016-07-06 23:33:36 Re: BUG #14150: Attempted to delete invisible tuple