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.