You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2016/01/25 05:13:50 UTC
[08/11] mesos git commit: Implement ContainerLogger recovery for the
logger module.
Implement ContainerLogger recovery for the logger module.
Adds a call to `ContainerLogger::recover` inside each containerizer's
`Containerizer::recover`.
Review: https://reviews.apache.org/r/41963/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/1c19b50f
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/1c19b50f
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/1c19b50f
Branch: refs/heads/master
Commit: 1c19b50fb66af9616e170ec7df5601f4c2e59440
Parents: 9ab260a
Author: Joseph Wu <jo...@mesosphere.io>
Authored: Sun Jan 24 20:12:38 2016 -0800
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Sun Jan 24 20:13:23 2016 -0800
----------------------------------------------------------------------
src/slave/containerizer/docker.cpp | 18 ++++++++++++++++++
src/slave/containerizer/mesos/containerizer.cpp | 11 +++++++++++
2 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/1c19b50f/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 40f6f0b..d2b77e3 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -691,6 +691,24 @@ Future<Nothing> DockerContainerizerProcess::_recover(
}
pids.put(containerId, pid);
+
+ const string sandboxDirectory = paths::getExecutorRunPath(
+ flags.work_dir,
+ state.id,
+ framework.id,
+ executor.id,
+ containerId);
+
+ // Pass recovered containers to the container logger.
+ // NOTE: The current implementation of the container logger only
+ // outputs a warning and does not have any other consequences.
+ // See `ContainerLogger::recover` for more information.
+ logger->recover(executorInfo, sandboxDirectory)
+ .onFailed(defer(self(), [executorInfo](const string& message) {
+ LOG(WARNING) << "Container logger failed to recover executor '"
+ << executorInfo.executor_id() << "': "
+ << message;
+ }));
}
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/1c19b50f/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 624cd1a..4b504db 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -538,6 +538,17 @@ Future<Nothing> MesosContainerizerProcess::__recover(
isolator->watch(containerId)
.onAny(defer(self(), &Self::limited, containerId, lambda::_1));
}
+
+ // Pass recovered containers to the container logger.
+ // NOTE: The current implementation of the container logger only
+ // outputs a warning and does not have any other consequences.
+ // See `ContainerLogger::recover` for more information.
+ logger->recover(run.executor_info(), run.directory())
+ .onFailed(defer(self(), [run](const string& message) {
+ LOG(WARNING) << "Container logger failed to recover executor '"
+ << run.executor_info().executor_id() << "': "
+ << message;
+ }));
}
// Destroy all the orphan containers.