On 2025-Dec-04, Heikki Linnakangas wrote: > While working on the 64-bit multixid offsets patch, I noticed one more bug > with this. At offset wraparound, when we set the next multixid's offset in > RecordNewMultiXact, we incorrectly set it to 0 instead of 1. We're supposed > to skip over offset 1, because 0 is reserved to mean invalid. We do that > correctly when setting the "current" multixid's offset, because the caller > of RecordNewMultiXact has already skipped over offset 0, but I missed it for > the next offset.
Ouch. > I tried to modify the new wraparound TAP test to reproduce that, but it > turned out to be difficult because you need to have multiple backends > assigning multixids concurrently to hit that. Hmm, would it make sense to add a pgbench-based test on src/test/modules/xid_wraparound? That module is already known to be expensive, and it doesn't run unless explicitly enabled, so I think it's not a bad fit. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
