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

Ensure that opCtx has been delisted before creating new opCtx during SessionWorkflow cleanup

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Service Arch
    • ALL
    • 3

      It is possible to get into a state where the opCtx has been killed but not yet delisted. When we try to create a new opCtx during SessionWorkflow exhaust cleanup, we assume that the client does not already have an opCtx. We had thought that this was already solved due to an earlier check to killAndDelistOperation if there existed previously an opCtx on the client. However, as part of this earlier check, we erroneously assume that the previously opCtx would have been in a healthy state.

      The simplest solution here is to call killAndDelistOperation regardless of whether the opCtx was already killed, so that we ensure delisting happens as well. The second kill will be essentially a no-op.

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            blake.oler@mongodb.com Blake Oler
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: