Re: BUG #14150: Attempted to delete invisible tuple

Поиск
Список
Период
Сортировка
От Oskari Saarenmaa
Тема Re: BUG #14150: Attempted to delete invisible tuple
Дата
Msg-id 88248a24-47d1-d575-a63f-2b56a09f82e2@aiven.io
обсуждение исходный текст
Ответ на Re: BUG #14150: Attempted to delete invisible tuple  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: BUG #14150: Attempted to delete invisible tuple  (Peter Geoghegan <pg@heroku.com>)
Re: BUG #14150: Attempted to delete invisible tuple  (Oskari Saarenmaa <os@aiven.io>)
Список pgsql-bugs
29.06.2016, 08:13, Michael Paquier kirjoitti:
> On Wed, Jun 29, 2016 at 8:40 AM, Peter Geoghegan <pg@heroku.com> wrote:
>> On Mon, Jun 27, 2016 at 8:28 PM, Michael Paquier
>> <michael.paquier@gmail.com> wrote:
>>> Could you post it? I'd be interested in seeing that.
>>
>> Attached is a reasonably minimal testcase, showing many "attempted to
>> delete invisible tuple" errors for me quickly and reliably. The
>> shellscript expects to be able to invoke pgbench without any custom
>> arguments, and runs the attach custom pgbench script in an infinite
>> loop. On my laptop, there is a roughly 90% chance that the script's 5
>> second pgbench runs will raise the error at least once.
>
> Thanks! I can see the problem with that. Now let's dig into it...

I ran into this yesterday on 9.5.3 and created a test case before
noticing this thread.  My test case just inserts a single
toast-requiring row using ON CONFLICT DO NOTHING and typically fails
immediately:

pgbench -f random.sql -n -T 2 -c 2

random.sql:

-- CREATE TABLE vtest (id INT UNIQUE, blob BYTEA);
TRUNCATE vtest;
INSERT INTO vtest (id, blob) VALUES (1, encrypt(repeat('a',
8192)::bytea, 'x'::bytea, 'aes')) ON CONFLICT DO NOTHING;

ISTM this is caused by toast knowing nothing about speculative
insertion: when two backends have executed a speculative heap_insert
with a conflicting key and the latter one tries to abort after receiving
specConflict there's nothing in tqual.c to say that the toast rows
associated with speculative insertion should be visible to that operation.

/ Oskari

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: BUG #14228: replication slot catalog_xmin not cleared on slot reuse
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: BUG #14150: Attempted to delete invisible tuple