Re: Parallel scan with SubTransGetTopmostTransaction assert coredump

From: Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com>
To: Greg Nancarrow <gregn4422(at)gmail(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Maxim Orlov <m(dot)orlov(at)postgrespro(dot)ru>, Michael Paquier <michael(at)paquier(dot)xyz>, Pengchengliu <pengchengliu(at)tju(dot)edu(dot)cn>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
Date: 2021-08-04 09:55:30
Message-ID: CALT9ZEFSjzxrNBX0LnCDf6++tt_tGp591AnfbmKXxRz5Q-43MQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

ср, 4 авг. 2021 г. в 07:41, Greg Nancarrow <gregn4422(at)gmail(dot)com>:

> On Wed, Aug 4, 2021 at 3:21 AM Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> >
> >The idea I sort of had floating around in my mind is a little
> >different than what Greg has implemented. I was thinking that we could
> >just skip SerializeSnapshot and the corresponding shm_toc_allocate()
> >if !IsolationUsesXactSnapshot(). Then on the restore side we could
> >just call shm_toc_lookup() with noError = true and skip
> >RestoreTransactionSnapshot/RestoreSnapshot if it returns NULL.
>
> I've tried to follow your description and have attached a patch to
> hopefully match it, but it doesn't pass "make check-world".
> Perhaps I messed something up (apologies if so), or additional changes
> are needed to match what you had in mind or correct additional issues
> you didn't foresee?
>
> t/001_pgbench_with_server.pl .. 10/?
> # Failed test 'pgbench scale 1 initialization status (got 1 vs expected
> 0)'
> # at t/001_pgbench_with_server.pl line 108.
> ...
> # creating primary keys...
> # pgbench: fatal: query failed: ERROR: cannot take query snapshot
> during a parallel operation
> # CONTEXT: parallel worker
> # pgbench: query was: alter table pgbench_accounts add primary key (aid)
>
> Greg, thanks for the fast response! I suppose that a check
for IsolationUsesXactSnapshot() is also useful in a GetTransactionSnapshot
for the correct processing of a case with NULL transaction snapshot.
This corrects mentioned check-world test.
PFA v7 patch.

Attachment Content-Type Size
v7-0001-Correct-usage-of-transaction-snapshot-in-a-parall.patch application/octet-stream 3.7 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Nancarrow 2021-08-04 10:17:56 Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
Previous Message houzj.fnst@fujitsu.com 2021-08-04 08:06:53 RE: [BUG] wrong refresh when ALTER SUBSCRIPTION ADD/DROP PUBLICATION