Repository: mesos Updated Branches: refs/heads/master 5125b80ea -> 257ee1740
Fixed a memory leak in composing containerizer. Review: https://reviews.apache.org/r/62237 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/257ee174 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/257ee174 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/257ee174 Branch: refs/heads/master Commit: 257ee17400dcf66f69d526d768c8fdc1b1740004 Parents: 5125b80 Author: Qian Zhang <zhq527...@gmail.com> Authored: Tue Sep 12 15:17:43 2017 +0800 Committer: Qian Zhang <zhq527...@gmail.com> Committed: Tue Sep 12 15:25:25 2017 +0800 ---------------------------------------------------------------------- src/slave/containerizer/composing.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/257ee174/src/slave/containerizer/composing.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/composing.cpp b/src/slave/containerizer/composing.cpp index c076c74..587f009 100644 --- a/src/slave/containerizer/composing.cpp +++ b/src/slave/containerizer/composing.cpp @@ -340,6 +340,11 @@ Future<bool> ComposingContainerizerProcess::_launch( // Note that we don't update the state if a destroy is in progress. if (container->state == LAUNCHING) { container->state = LAUNCHED; + + // This is needed for eventually removing the given container from + // the list of active containers. + container->containerizer->wait(containerId) + .onAny(defer(self(), &Self::destroy, containerId)); } // Note that the return value is not impacted @@ -483,6 +488,11 @@ Future<bool> ComposingContainerizerProcess::_launch( // Note that we don't update the state if a destroy is in progress. if (container->state == LAUNCHING) { container->state = LAUNCHED; + + // This is needed for eventually removing the given container from + // the list of active containers. + container->containerizer->wait(containerId) + .onAny(defer(self(), &Self::destroy, containerId)); } // Note that the return value is not impacted @@ -651,11 +661,6 @@ Future<bool> ComposingContainerizerProcess::kill( return false; } - // This is needed for eventually removing the given container from - // the list of active containers. - containers_.at(containerId)->containerizer->wait(containerId) - .onAny(defer(self(), &Self::destroy, containerId)); - return containers_.at(containerId)->containerizer->kill(containerId, signal); }