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

Audit and fix session->open_cursor calls to handle EBUSY

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

      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:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            milkie@mongodb.com Eric Milkie
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: