You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Joseph Wu (JIRA)" <ji...@apache.org> on 2016/12/22 10:19:58 UTC

[jira] [Created] (MESOS-6832) Review how Mesos handles loading and unloading of dynamic libraries

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)