[SERVER-9086] Enterprise libgcrypt initializer missing dependency edge with client context sasl initializer Created: 22/Mar/13  Updated: 10/Dec/14  Resolved: 30/Apr/13

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: 2.4.0
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Andrew Morrow (Inactive) Assignee: Andrew Morrow (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-9167 Problem with global initialization of... Closed
Related
related to SERVER-9103 Backport fix for SERVER-9086 to 2.4.x Closed
is related to SERVER-8068 Need to conditionally initialize gcry... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Steps To Reproduce:

Non-deterministic, because it depends on the link.

Participants:

 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.



 Comments   
Comment by Andy Schwerin [ 30/Apr/13 ]

After SERVER-8813 (switch to Cyrus SASL), all of the relevant code went away.

Generated at Thu Feb 08 03:19:20 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.