Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
От | Pavel Borisov |
---|---|
Тема | Re: Parallel scan with SubTransGetTopmostTransaction assert coredump |
Дата | |
Msg-id | CALT9ZEFSjzxrNBX0LnCDf6++tt_tGp591AnfbmKXxRz5Q-43MQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Parallel scan with SubTransGetTopmostTransaction assert coredump (Greg Nancarrow <gregn4422@gmail.com>) |
Ответы |
Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
|
Список | pgsql-hackers |
ср, 4 авг. 2021 г. в 07:41, Greg Nancarrow <gregn4422@gmail.com>:
On Wed, Aug 4, 2021 at 3:21 AM Robert Haas <robertmhaas@gmail.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.
Вложения
В списке pgsql-hackers по дате отправления: