You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jp...@apache.org on 2017/10/15 22:48:46 UTC

[2/9] mesos git commit: Removed multiple reasons from ContainerTermination.

Removed multiple reasons from ContainerTermination.

Since the ContainerLimitation is no longer ever populated with more
than one TaskStatus.Reason, make it optional rather than repeated.

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


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

Branch: refs/heads/master
Commit: 0f5328ad08849694cd0ca897f957852337bba48c
Parents: 1411700
Author: James Peach <jp...@apache.org>
Authored: Sun Oct 15 15:21:24 2017 -0700
Committer: James Peach <jp...@apache.org>
Committed: Sun Oct 15 15:21:24 2017 -0700

----------------------------------------------------------------------
 include/mesos/slave/containerizer.proto         |  2 +-
 src/slave/containerizer/mesos/containerizer.cpp |  2 +-
 src/slave/slave.cpp                             | 27 ++++++++++----------
 .../containerizer/io_switchboard_tests.cpp      |  4 +--
 4 files changed, 17 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/0f5328ad/include/mesos/slave/containerizer.proto
----------------------------------------------------------------------
diff --git a/include/mesos/slave/containerizer.proto b/include/mesos/slave/containerizer.proto
index 84f9ca7..4375a38 100644
--- a/include/mesos/slave/containerizer.proto
+++ b/include/mesos/slave/containerizer.proto
@@ -245,6 +245,6 @@ message ContainerTermination {
   // The 'state', 'reasons' and 'message' of a status update for
   // non-terminal tasks when the executor is terminated.
   optional TaskState state = 4;
-  repeated TaskStatus.Reason reasons = 5;
+  optional TaskStatus.Reason reason = 5;
   optional string message = 2;
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/0f5328ad/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 4851855..fd7b71e 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -2445,7 +2445,7 @@ void MesosContainerizerProcess::______destroy(
     termination.set_message(container->limitation->message());
 
     if (container->limitation->has_reason()) {
-      termination.add_reasons(container->limitation->reason());
+      termination.set_reason(container->limitation->reason());
     }
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/0f5328ad/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index c35cf7d..df0e894 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -2493,7 +2493,7 @@ void Slave::___run(
 
       ContainerTermination termination;
       termination.set_state(taskState);
-      termination.add_reasons(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
+      termination.set_reason(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
       termination.set_message(
           "Failed to update resources for container: " +
           (future.isFailed() ? future.failure() : "discarded"));
@@ -2753,7 +2753,7 @@ void Slave::launchExecutor(
     // and perform cleanup via `executorTerminated`.
     ContainerTermination termination;
     termination.set_state(TASK_FAILED);
-    termination.add_reasons(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
+    termination.set_reason(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
     termination.set_message("Executor " + executorState);
 
     executorTerminated(frameworkId, executorId, termination);
@@ -2774,7 +2774,7 @@ void Slave::launchExecutor(
 
       ContainerTermination termination;
       termination.set_state(TASK_FAILED);
-      termination.add_reasons(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
+      termination.set_reason(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
       termination.set_message(
           "Secret generation failed: " +
           (future->isFailed() ? future->failure() : "discarded"));
@@ -4303,7 +4303,7 @@ void Slave::_reregisterExecutor(
 
       ContainerTermination termination;
       termination.set_state(taskState);
-      termination.add_reasons(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
+      termination.set_reason(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
       termination.set_message(
           "Failed to update resources for container: " +
           (future.isFailed() ? future.failure() : "discarded"));
@@ -4356,7 +4356,7 @@ void Slave::reregisterExecutorTimeout()
 
           ContainerTermination termination;
           termination.set_state(taskState);
-          termination.add_reasons(
+          termination.set_reason(
               TaskStatus::REASON_EXECUTOR_REREGISTRATION_TIMEOUT);
           termination.set_message(
               "Executor did not re-register within " +
@@ -4737,7 +4737,7 @@ void Slave::__statusUpdate(
 
       ContainerTermination termination;
       termination.set_state(taskState);
-      termination.add_reasons(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
+      termination.set_reason(TaskStatus::REASON_CONTAINER_UPDATE_FAILED);
       termination.set_message(
           "Failed to update resources for container: " +
           (future->isFailed() ? future->failure() : "discarded"));
@@ -5299,7 +5299,7 @@ void Slave::executorLaunched(
     if (executor != nullptr) {
       ContainerTermination termination;
       termination.set_state(TASK_FAILED);
-      termination.add_reasons(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
+      termination.set_reason(TaskStatus::REASON_CONTAINER_LAUNCH_FAILED);
       termination.set_message(
           "Failed to launch container: " +
           (future.isFailed() ? future.failure() : "discarded"));
@@ -5883,7 +5883,7 @@ void Slave::registerExecutorTimeout(
 
       ContainerTermination termination;
       termination.set_state(TASK_FAILED);
-      termination.add_reasons(TaskStatus::REASON_EXECUTOR_REGISTRATION_TIMEOUT);
+      termination.set_reason(TaskStatus::REASON_EXECUTOR_REGISTRATION_TIMEOUT);
       termination.set_message(
           "Executor did not register within " +
           stringify(flags.executor_registration_timeout));
@@ -6681,7 +6681,7 @@ void Slave::_qosCorrections(const Future<list<QoSCorrection>>& future)
 
           ContainerTermination termination;
           termination.set_state(taskState);
-          termination.add_reasons(TaskStatus::REASON_CONTAINER_PREEMPTED);
+          termination.set_reason(TaskStatus::REASON_CONTAINER_PREEMPTED);
           termination.set_message("Container preempted by QoS correction");
 
           executor->pendingTermination = termination;
@@ -6902,13 +6902,12 @@ void Slave::sendExecutorTerminatedStatusUpdate(
   }
 
   // Determine the task reason for the status update.
-  // TODO(jieyu): Handle multiple reasons (MESOS-2657).
   if (termination.isReady() &&
-      termination->isSome() && termination->get().reasons().size() > 0) {
-    reason = termination->get().reasons(0);
+      termination->isSome() && termination->get().has_reason()) {
+    reason = termination->get().reason();
   } else if (executor->pendingTermination.isSome() &&
-             executor->pendingTermination->reasons().size() > 0) {
-    reason = executor->pendingTermination->reasons(0);
+             executor->pendingTermination->has_reason()) {
+    reason = executor->pendingTermination->reason();
   } else {
     reason = TaskStatus::REASON_EXECUTOR_TERMINATED;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/0f5328ad/src/tests/containerizer/io_switchboard_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/io_switchboard_tests.cpp b/src/tests/containerizer/io_switchboard_tests.cpp
index bf7917a..c3410cd 100644
--- a/src/tests/containerizer/io_switchboard_tests.cpp
+++ b/src/tests/containerizer/io_switchboard_tests.cpp
@@ -900,9 +900,9 @@ TEST_F(IOSwitchboardTest, KillSwitchboardContainerDestroyed)
   ASSERT_TRUE(wait.get()->has_status());
   EXPECT_WTERMSIG_EQ(SIGKILL, wait.get()->status());
 
-  ASSERT_TRUE(wait.get()->reasons().size() == 1);
+  ASSERT_TRUE(wait.get()->has_reason());
   ASSERT_EQ(TaskStatus::REASON_IO_SWITCHBOARD_EXITED,
-            wait.get()->reasons().Get(0));
+            wait.get()->reason());
 
   wait = containerizer->wait(containerId);