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);