-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Reconciliation
-
None
-
Storage Engines - Transactions
-
42.136
-
SE Transactions - 2026-08-14
-
5
Context
This is a follow-up to WT-17820. As noted in that ticket, the assertion stack here has the same signature (a split race in __split_internal), but it reproduces on a commit landed after the WT-17820 fix, so there is likely another path that can trigger the same race.
Unlike WT-17820, where the eviction was driven from the layered drain worker, here the split happens during eviction from the eviction server thread (_evict_thread_run -> wti_evict_lru_pages -> wti_evict_page -> _wt_evict). The process aborts on WT_ASSERT(session, F_ISSET_ATOMIC_16(page, WT_PAGE_INTL_PINDEX_UPDATE)) at src/btree/bt_split.c:1131.
Evergreen Task / Link
format-stress-test-disagg-multi-validation-1 (amazon2023-disagg-asan-stress)
Base commit: 397a2328dd (WT-18162). Config: CONFIG.disagg with disagg.multi=1 runs.predictable_replay=1 ops.verify=1 disagg.multi_validation=1 disagg.preserve=1 (runs.type=row-store, runs.source=layered).
Logs & Stack Trace
Program terminated with signal SIGABRT, Aborted. #3 __wt_abort (session=0xffff9fc9c0a0) at src/os_common/os_abort.c:32 #4 __split_internal (session=..., parent=0x51200112c3c0, page=0x5120010fcb40) at src/btree/bt_split.c:1131 #5 __split_parent_climb (session=..., page=0x5120010fcb40) at src/btree/bt_split.c:1402 #6 __split_multi_lock (session=..., ref=0x50e0015cf8e0, closing=0) at src/btree/bt_split.c:2450 #7 __wt_split_multi (session=..., ref=0x50e0015cf8e0, closing=0) at src/btree/bt_split.c:2471 #8 __evict_page_dirty_update (session=..., ref=0x50e0015cf8e0, evict_flags=0) at src/evict/evict_page.c:754 #9 __wt_evict (session=..., ref=0x50e0015cf8e0, previous_state=3, flags=0) at src/evict/evict_page.c:559 #10 __wti_evict_page (session=..., is_server=false) at src/evict/evict_dispatch.c:254 #11 __wti_evict_lru_pages (session=..., is_server=false) at src/evict/evict_queue.c:140 #12 __evict_thread_run (session=..., thread=0x5070000252b0) at src/evict/evict_thread.c:117 #13 __thread_run (arg=0x5070000252b0) at src/support/thread_group.c:32