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

Query yield accesses the storage engine without locks during shutdown and rollback

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0, 7.0.5, 6.0.13
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Fully Compatible
    • ALL
    • v7.0, v6.0, v5.0, v4.4
    • Execution Team 2022-11-14, Execution Team 2023-04-03, Execution Team 2023-04-17, Execution Team 2023-05-01
    • 103

      The yielding code in PlanYieldPolicy does the following:

      • Releases its locks
      • Rolls-back the storage transaction via abandonSnapshot()
      • Re-acquires its locks

      The global lock synchronizes access to the storage engine for shutdown and rollback. This order of operations can result in the operation unsafely accessing the storage engine during these periods.

      This has existed since at least 3.6.

            Assignee:
            louis.williams@mongodb.com Louis Williams
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated:
              Resolved: