-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines
-
None
-
3
Currently, when RTS is blocked by an active cursor or active transaction, we return an EBUSY error along with debugging information based on whichever condition is encountered first. However, there are cases where both an active cursor and an active transaction are blocking RTS, and the current logic doesn’t capture this — it exits early after detecting the first issue in __rts_check_callback.
/* * A new cursor may be positioned or a transaction may start after we return from this call and * callers should be aware of this limitation. */ if (cookie.ret_cursor_active) { ret = EBUSY; WT_TRET(__wt_verbose_dump_sessions(session, true)); WT_RET_MSG(session, ret, "rollback_to_stable illegal with active file cursors"); } if (cookie.ret_txn_active) { ret = EBUSY; WT_TRET(__wt_verbose_dump_sessions(session, false)); WT_RET_MSG(session, ret, "rollback_to_stable illegal with active transactions"); }
This ticket aims to enhance the debug logging to capture and report both active cursors and transactions when they are both blocking RTS, to make debugging easier.
- is related to
-
WT-14204 Convert RTS related EBUSY messages into sub-level error code
-
- Closed
-