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

failCommand + closeConnection can dereference a null session pointer

    XMLWordPrintable

    Details

    • Operating System:
      ALL
    • Steps To Reproduce:
      Hide
      1. Initialize a replica set with test commands enabled
      2. db.adminCommand({configureFailPoint: "failCommand", mode: "alwaysOn", data: {failCommands: ["find"], closeConnection: true}})
      3. Wait for the HMAC monitoring periodic runner to execute (or issue a shutdown, which has the same effect)
      Show
      Initialize a replica set with test commands enabled db.adminCommand({configureFailPoint: "failCommand", mode: "alwaysOn", data: {failCommands: ["find"] , closeConnection: true}}) Wait for the HMAC monitoring periodic runner to execute (or issue a shutdown, which has the same effect)
    • Sprint:
      Service Arch 2019-10-21

      Description

      The conditions evaluated to reach this line are not sufficient to guarantee the session object exists on the client (note the type definition: using SessionHandle = std::shared_ptr<Session>;).

      Notably, the session may be null when using DBDirectClient such as inside the KeysCollectionClientDirect.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jason.carey Jason Carey
              Reporter:
              daniel.gottlieb Daniel Gottlieb
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: