Investigate throwing WriteConflictException on EBUSY in WiredTigerSession::getNewCursor

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Execution Team 2021-10-04
    • 0
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      When attempting to open a cursor on a WT table returns EBUSY, currently we handle this by throwing a WriteConflictException.

      The comment states that this can only occur on the oplog. However, as of lock-free reads, this can now occur for other collections as well.

      Additionally, this appears to be the only place where we convert EBUSY to a WriteConflictException. (Typically, WT_ROLLBACK is converted to WriteConflictException and EBUSY is converted to ObjectIsBusy.)

      We should update the comment to reflect the current state of things. Additionally, we should evaluate whether it still makes to use WriteConflictException here, or whether ObjectIsBusy should be used instead. If we stick with WriteConflictException, we should document why doing so makes sense here.

            Assignee:
            Ian Boros
            Reporter:
            Gregory Noma
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: