Audit and fix session->open_cursor calls to handle EBUSY

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.7.0
    • Affects Version/s: None
    • Component/s: Storage
    • None
    • Storage Execution
    • Fully Compatible
    • ALL
    • Execution Team 2020-06-01
    • 16
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      After we removed Collection locking for oplog readers (they only need Global IS), this stopped protecting such readers from concurrent validate commands locking the WiredTiger oplog collection's table with calls to WT verify(). Thus, open_cursor() can now return EBUSY, but only for the oplog collection. This is captured and handled for most cursor usage via WiredTigerSession's cursor cache, but we also have some internal code in wiredtiger_kv_engine.cpp and wiredtiger_record_store.cpp that bypasses this and calls open_cursor() themselves. These callers need to also check for EBUSY.

            Assignee:
            [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            Eric Milkie
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: