Race between creating new opCtx and killing opCtx's before switching out the storage engine

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Blocker - P1
    • 5.3.0, 5.2.0-rc5
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • v5.2
    • Replication 2021-12-13, Replication 2021-12-27, Replication 2022-01-10, Replication 2022-01-24
    • 135
    • None
    • 0
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      We don't call onCreate with the client lock, so there's a period of time where there's a new opCtx that isn't enumerable by going through the client list. When we change the storage engine for FCBIS, we first kill all opCtxes by going through the client list. Since a new opCtx might not be on the list, it can survive and will still exist after we clear the storage engine. This means the opCtx could reference a null storage engine, resulting in a segfault.

              Assignee:
              Samyukta Lanka
              Reporter:
              Samyukta Lanka
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: