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

Enterprise libgcrypt initializer missing dependency edge with client context sasl initializer

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • None
    • 2.4.0
    • Internal Code
    • None
    • Fully Compatible
    • ALL
    • Hide

      Non-deterministic, because it depends on the link.

      Show
      Non-deterministic, because it depends on the link.

    Description

      The gsasl initialization detection logic in the enterprise repo:

      https://github.com/10gen/mongo-enterprise-modules/blob/master/src/gcrypt_init.cpp#L22-L25

      Can end up running after the gsasl initialization in the client:

      https://github.com/mongodb/mongo/blob/master/src/mongo/client/sasl_client_authenticate_impl.cpp#L42-L49

      This is a problem because the client initializer calls sasl_init, which may initialize gcrypt, but the enterprise initializer needs to be the first to initialize gcrypt. The enterprise initializer detects that it did not get to initialize gcrypt, and errors out, preventing mongod from starting.

      Attachments

        Activity

          People

            andrew.morrow@mongodb.com Andrew Morrow (Inactive)
            andrew.morrow@mongodb.com Andrew Morrow (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: