-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Reconciliation
-
None
-
Storage Engines, Storage Engines - Foundations
-
SE Foundations - 2025-08-01
-
5
Eviction could live-lock in __rec_row_garbage_collect_fixup_update_list when the update chain’s head was aborted. The loop:
for (upd = first_upd; upd != NULL && upd->txnid == WT_TXN_ABORTED; upd = first_upd->next)
kept rechecking first_upd->next instead of advancing with upd->next, causing infinite retries.
kept rechecking first_upd->next instead of advancing with upd->next, causing infinite retries.
Fix:
Change to -
for (upd = first_upd; upd != NULL && upd->txnid == WT_TXN_ABORTED; upd = upd->next)
Impact:
Prevents eviction from stalling.