Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-60006

Investigate throwing WriteConflictException on EBUSY in WiredTigerSession::getNewCursor

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 5.1.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • Execution Team 2021-10-04
    • 0

    Description

      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.

      Attachments

        Activity

          People

            ian.boros@mongodb.com Ian Boros
            gregory.noma@mongodb.com Gregory Noma
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: