amcheck: Fix ordering bug in update_cached_xid_range()
Andres Freund <andres@anarazel.de>
amcheck: Fix ordering bug in update_cached_xid_range() The initialization order in update_cached_xid_range() was wrong, calling FullTransactionIdFromXidAndCtx() before setting ->next_xid. FullTransactionIdFromXidAndCtx() uses ->next_xid. In most situations this will not cause visible issues, because the next call to update_cached_xid_range() will use a less wrong ->next_xid. It's rare that xids advance fast enough for this to be a problem. Found while adding more asserts to the 64bit xid infrastructure. Reviewed-by: Mark Dilger <mark.dilger@enterprisedb.com> Discussion: https://postgr.es/m/20230108002923.cyoser3ttmt63bfn@awork3.anarazel.de Backpatch: 14-, where heapam verification was introduced
Files
| Path | Change | +/− |
|---|---|---|
| contrib/amcheck/verify_heapam.c | modified | +4 −1 |
Discussion
- BUG: Postgres 14 + vacuum_defer_cleanup_age + FOR UPDATE + UPDATE 38 messages · 2023-01-05 → 2024-07-05