Joseph Wu created MESOS-6832:
--------------------------------
Summary: Review how Mesos handles loading and unloading of dynamic
libraries
Key: MESOS-6832
URL: https://issues.apache.org/jira/browse/MESOS-6832
Project: Mesos
Issue Type: Improvement
Components: gpu, cmake, java api, modules
Affects Versions: 1.2.0
Reporter: Joseph Wu
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 of MESOS-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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)