Details
-
Bug
-
Resolution: Done
-
Major - P3
-
None
-
None
-
Fully Compatible
-
ALL
-
Platform 5 06/26/16
-
0
Description
If dynamic initialization for a global in a translation unit runs and invokes the logging subsystem before dynamic initialization has completed for the globals in src/mongo/util/concurrency/thread_name.cpp, then access to a zero-initialized boost::thread_specific_pointer variable will occur, resulting in undefined behavior.
The observed behavior is that the program leaks a std::string, since it either isn't actually set, or is overwritten when the dynamic initializer for the thread_specific_pointer runs.