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/


Reply via email to