Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
От | Maxim Orlov |
---|---|
Тема | Re: Parallel scan with SubTransGetTopmostTransaction assert coredump |
Дата | |
Msg-id | 09788181118f7bd8000d3bb097e0720f@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: Re: Parallel scan with SubTransGetTopmostTransaction assert coredump (Greg Nancarrow <gregn4422@gmail.com>) |
Ответы |
Re: Parallel scan with SubTransGetTopmostTransaction assert coredump
|
Список | pgsql-hackers |
Just a note here. After examining the core dump I did notice something. While in XidInMVCCSnapshot call the snapshot->suboverflowed is set true although subxip == NULL and subxcnt == 0. As far as I understand, snapshot->suboverflowed is set true in the GetRunningTransactionData call. And then I decided to put elog around CurrentRunningXacts->subxcnt's assigment. diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 42a89fc5dc9..3d2db02f580 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -2781,6 +2781,9 @@ GetRunningTransactionData(void) * increases if slots do. */ + if (suboverflowed) + elog(WARNING, " >>> CurrentRunningXacts->subxid_overflow is true"); + CurrentRunningXacts->xcnt = count - subcount; CurrentRunningXacts->subxcnt = subcount; CurrentRunningXacts->subxid_overflow = suboverflowed; ... and did get a bunch of messages. I.e. subxid_overflow is set true very often. I've increased the value of PGPROC_MAX_CACHED_SUBXIDS. Once it becomes more than 120 there are no messages and no failed assertions are provided any more. --- Best regards, Maxim Orlov.
Вложения
В списке pgsql-hackers по дате отправления: