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

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Service Arch
    • ALL
    • 3

    Description

      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.

      Attachments

        Activity

          People

            backlog-server-servicearch Backlog - Service Architecture
            blake.oler@mongodb.com Blake Oler
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: