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

Enterprise libgcrypt initializer missing dependency edge with client context sasl initializer

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.4.0
    • Component/s: Internal Code
    • None
    • Fully Compatible
    • ALL
    • Hide

      Non-deterministic, because it depends on the link.

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

      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.

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

              Created:
              Updated:
              Resolved: