Re: lastOverflowedXid does not handle transaction ID wraparound
От | Andrey Borodin |
---|---|
Тема | Re: lastOverflowedXid does not handle transaction ID wraparound |
Дата | |
Msg-id | 73A059B2-094C-4BAC-9946-8C994C7F7E04@yandex-team.ru обсуждение исходный текст |
Ответ на | Re: lastOverflowedXid does not handle transaction ID wraparound (Kyotaro Horiguchi <horikyota.ntt@gmail.com>) |
Ответы |
Re: lastOverflowedXid does not handle transaction ID wraparound
|
Список | pgsql-hackers |
> 21 окт. 2021 г., в 09:01, Kyotaro Horiguchi <horikyota.ntt@gmail.com> написал(а): > > If the discussion so far is correct, the following diff will fix the > issue. > > diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c > index bd3c7a47fe..19682b73ec 100644 > --- a/src/backend/storage/ipc/procarray.c > +++ b/src/backend/storage/ipc/procarray.c > @@ -4463,6 +4463,12 @@ ExpireOldKnownAssignedTransactionIds(TransactionId xid) > { > LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); > KnownAssignedXidsRemovePreceding(xid); > + /* > + * reset lastOverflowedXid if we know transactions that have been possiblly > + * running are being gone. > + */ > + if (TransactionIdPrecedes(procArray->lastOverflowedXid, xid)) > + procArray->lastOverflowedXid = InvalidTransactionId; > LWLockRelease(ProcArrayLock); > } The patch seems correct bugfix to me. The only question I have: is it right place from modularity standpoint? procArray->lastOverflowedXidis not a part of KnownAssignedTransactionIds? Best regards, Andrey Borodin.
В списке pgsql-hackers по дате отправления: