Re: BUG #18658: Assert in SerialAdd() due to race condition
Maxim Orlov <orlovmg@gmail.com>
From: Maxim Orlov <orlovmg@gmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Alexander Lakhin <exclusion@gmail.com>,
Andrew Bille <andrewbille@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2024-10-23T13:31:32Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix race condition in committing a serializable transaction
- e2ec3afebc23 12.21 landed
- 8e607a5a4be5 13.17 landed
- 520ec2474b39 14.14 landed
- d97419b851f8 15.9 landed
- 22665f210624 16.5 landed
- 234f6d09e531 17.1 landed
- 1a43de5e0a59 18.0 landed
Attachments
- v1-0001-Hold-XidGenLock-to-read-TransamVariables-nextXid.patch (application/octet-stream) patch v1-0001
I think there is a bit more in this module. Though, not related to the described error. See, we copy nextXid from TransamVariables assuming TransactionId is atomic. But the nextXid is of FullTransactionId, i.e. 64-bit. And this will work fine on modern 64-bit platforms where 64-bit FullTransactionId actually would be atomic, but not for the x86. And since we still support x86 platforms, we better use lock here. -- Best regards, Maxim Orlov.