Log debugging information for both active transactions and cursors blocking RTS

XMLWordPrintableJSON

    • 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.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Jasmine Bi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: