Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.2.0
-
None
Description
There are three instances in the codebase where we load a dynamic library into a static variable and leak said variable on purpose:
- https://github.com/apache/mesos/blob/1.1.x/src/jvm/jvm.cpp#L83
- https://github.com/apache/mesos/blob/1.1.x/src/slave/containerizer/mesos/isolators/gpu/nvml.cpp#L78
- https://github.com/apache/mesos/blob/1.1.x/src/module/manager.hpp#L181
^ This last one will be changed to leak as part ofMESOS-6658
Since the dynamic libraries are loaded into static variables, they will only be destructed when the library (i.e. libmesos) gets unloaded. This might lead to inconsistencies when libmesos's own destruction unloads e.g., a dynamic libprocess, which might be opened by a dlopen of a module. The module's cleanup would not find libprocess anymore and potentially crash during unloading.
Attachments
Issue Links
- is related to
-
MESOS-6658 Mesos tests generated with cmake build fail to unload libraries properly
- Resolved