You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2016/11/23 04:47:14 UTC

[5/6] mesos git commit: Made Mesos containerizer error messages more consistent.

Made Mesos containerizer error messages more consistent.

We've been using slightly different wordings of the same condition in
multiple places in Mesos containerizer but they don't provide
additional information about where this failure is thrown in a long
continuation chain. Since failures don't capture the location in the
code we'd better distinguish them in a more meaningful way to assist
debugging.

Review: https://reviews.apache.org/r/49653


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2d61bde8
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2d61bde8
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2d61bde8

Branch: refs/heads/0.28.x
Commit: 2d61bde81e3d6fb7400ec5f7078ceedd8d2bb802
Parents: d7f8b85
Author: Jiang Yan Xu <xu...@apple.com>
Authored: Fri Jul 1 18:12:01 2016 -0700
Committer: Anand Mazumdar <an...@apache.org>
Committed: Tue Nov 22 20:31:26 2016 -0800

----------------------------------------------------------------------
 src/slave/containerizer/mesos/containerizer.cpp | 29 +++++++++++---------
 1 file changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/2d61bde8/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index e902853..3262850 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -770,14 +770,14 @@ Future<bool> MesosContainerizerProcess::_launch(
   // and its dependencies finish before '_launch' starts since onAny
   // is not guaranteed to be executed in order.
   if (!containers_.contains(containerId)) {
-    return Failure("Container has been destroyed");
+    return Failure("Container destroyed during provisioning");
   }
 
   // Make sure containerizer is not in DESTROYING state, to avoid
   // a possible race that containerizer is destroying the container
   // while it is provisioning the image from volumes.
   if (containers_[containerId]->state == DESTROYING) {
-    return Failure("Container is currently being destroyed");
+    return Failure("Container is being destroyed during provisioning");
   }
 
   CHECK_EQ(containers_[containerId]->state, PROVISIONING);
@@ -873,14 +873,14 @@ Future<list<Option<ContainerLaunchInfo>>> MesosContainerizerProcess::prepare(
   // 'prepare' starts since onAny is not guaranteed to be executed
   // in order.
   if (!containers_.contains(containerId)) {
-    return Failure("Container has been destroyed");
+    return Failure("Container destroyed during provisioning");
   }
 
   // Make sure containerizer is not in DESTROYING state, to avoid
   // a possible race that containerizer is destroying the container
   // while it is preparing isolators for the container.
   if (containers_[containerId]->state == DESTROYING) {
-    return Failure("Container is currently being destroyed");
+    return Failure("Container is being destroyed during provisioning");
   }
 
   CHECK_EQ(containers_[containerId]->state, PROVISIONING);
@@ -946,11 +946,11 @@ Future<Nothing> MesosContainerizerProcess::fetch(
     const SlaveID& slaveId)
 {
   if (!containers_.contains(containerId)) {
-    return Failure("Container is already destroyed");
+    return Failure("Container destroyed during isolating");
   }
 
   if (containers_[containerId]->state == DESTROYING) {
-    return Failure("Container is currently being destroyed");
+    return Failure("Container is being destroyed during isolating");
   }
 
   CHECK_EQ(containers_[containerId]->state, ISOLATING);
@@ -980,11 +980,11 @@ Future<bool> MesosContainerizerProcess::__launch(
     const list<Option<ContainerLaunchInfo>>& launchInfos)
 {
   if (!containers_.contains(containerId)) {
-    return Failure("Container has been destroyed");
+    return Failure("Container destroyed during preparing");
   }
 
   if (containers_[containerId]->state == DESTROYING) {
-    return Failure("Container is currently being destroyed");
+    return Failure("Container is being destroyed during preparing");
   }
 
   CHECK_EQ(containers_[containerId]->state, PREPARING);
@@ -1230,11 +1230,11 @@ Future<bool> MesosContainerizerProcess::isolate(
     pid_t _pid)
 {
   if (!containers_.contains(containerId)) {
-    return Failure("Container is already destroyed");
+    return Failure("Container destroyed during preparing");
   }
 
   if (containers_[containerId]->state == DESTROYING) {
-    return Failure("Container is currently being destroyed");
+    return Failure("Container is being destroyed during preparing");
   }
 
   CHECK_EQ(containers_[containerId]->state, PREPARING);
@@ -1271,9 +1271,12 @@ Future<bool> MesosContainerizerProcess::exec(
 {
   // The container may be destroyed before we exec the executor so
   // return failure here.
-  if (!containers_.contains(containerId) ||
-      containers_[containerId]->state == DESTROYING) {
-    return Failure("Container destroyed during launch");
+  if (!containers_.contains(containerId)) {
+    return Failure("Container destroyed during fetching");
+  }
+
+  if (containers_[containerId]->state == DESTROYING) {
+    return Failure("Container is being destroyed during fetching");
   }
 
   CHECK_EQ(containers_[containerId]->state, FETCHING);