Repository: mesos Updated Branches: refs/heads/master ac991e21a -> a9dc12d41
Introduced TASK_ERROR for unrecoverable errors Review: https://reviews.apache.org/r/27685 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/a9dc12d4 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/a9dc12d4 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/a9dc12d4 Branch: refs/heads/master Commit: a9dc12d4100fa05689d250c66950c77d28aa112c Parents: ac991e2 Author: Dominic Hamon <[email protected]> Authored: Thu Nov 6 09:14:44 2014 -0800 Committer: Dominic Hamon <[email protected]> Committed: Wed Nov 12 10:05:35 2014 -0800 ---------------------------------------------------------------------- include/mesos/mesos.proto | 2 -- src/master/master.cpp | 16 ++++++++++------ src/master/master.hpp | 1 + src/tests/master_authorization_tests.cpp | 2 +- src/tests/resource_offers_tests.cpp | 14 +++++++------- 5 files changed, 19 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/a9dc12d4/include/mesos/mesos.proto ---------------------------------------------------------------------- diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto index 6c846f2..35b9118 100644 --- a/include/mesos/mesos.proto +++ b/include/mesos/mesos.proto @@ -614,8 +614,6 @@ enum TaskState { TASK_FAILED = 3; // TERMINAL. The task failed to finish successfully. TASK_KILLED = 4; // TERMINAL. The task was killed by the executor. TASK_LOST = 5; // TERMINAL. The task failed but can be rescheduled. - // TASK_ERROR is currently unused but will be introduced in 0.22.0. - // TODO(dhamon): Start using TASK_ERROR. TASK_ERROR = 7; // TERMINAL. The task description contains an error. } http://git-wip-us.apache.org/repos/asf/mesos/blob/a9dc12d4/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index 0e182a6..83fecba 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -2589,13 +2589,13 @@ void Master::_launchTasks( framework->id, task.slave_id(), task.task_id(), - TASK_LOST, // TODO(dhamon): TASK_ERROR in 0.22 + TASK_ERROR, TaskStatus::SOURCE_MASTER, validation.get().message, TaskStatus::REASON_TASK_INVALID); - metrics.tasks_lost++; - stats.tasks[TASK_LOST]++; + metrics.tasks_error++; + stats.tasks[TASK_ERROR]++; forward(update, UPID(), framework); @@ -2616,15 +2616,15 @@ void Master::_launchTasks( framework->id, task.slave_id(), task.task_id(), - TASK_LOST, // TODO(dhamon): TASK_ERROR in 0.22 + TASK_ERROR, TaskStatus::SOURCE_MASTER, authorization.isFailed() ? "Authorization failure: " + authorization.failure() : "Not authorized to launch as user '" + user + "'", TaskStatus::REASON_TASK_UNAUTHORIZED); - metrics.tasks_lost++; - stats.tasks[TASK_LOST]++; + metrics.tasks_error++; + stats.tasks[TASK_ERROR]++; forward(update, UPID(), framework); @@ -5115,6 +5115,8 @@ Master::Metrics::Metrics(const Master& master) "master/tasks_killed"), tasks_lost( "master/tasks_lost"), + tasks_error( + "master/tasks_error"), dropped_messages( "master/dropped_messages"), messages_register_framework( @@ -5206,6 +5208,7 @@ Master::Metrics::Metrics(const Master& master) process::metrics::add(tasks_failed); process::metrics::add(tasks_killed); process::metrics::add(tasks_lost); + process::metrics::add(tasks_error); process::metrics::add(dropped_messages); @@ -5304,6 +5307,7 @@ Master::Metrics::~Metrics() process::metrics::remove(tasks_failed); process::metrics::remove(tasks_killed); process::metrics::remove(tasks_lost); + process::metrics::remove(tasks_error); process::metrics::remove(dropped_messages); http://git-wip-us.apache.org/repos/asf/mesos/blob/a9dc12d4/src/master/master.hpp ---------------------------------------------------------------------- diff --git a/src/master/master.hpp b/src/master/master.hpp index 687f178..b3bdec6 100644 --- a/src/master/master.hpp +++ b/src/master/master.hpp @@ -633,6 +633,7 @@ private: process::metrics::Counter tasks_failed; process::metrics::Counter tasks_killed; process::metrics::Counter tasks_lost; + process::metrics::Counter tasks_error; // Message counters. process::metrics::Counter dropped_messages; http://git-wip-us.apache.org/repos/asf/mesos/blob/a9dc12d4/src/tests/master_authorization_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/master_authorization_tests.cpp b/src/tests/master_authorization_tests.cpp index aafa724..796fe21 100644 --- a/src/tests/master_authorization_tests.cpp +++ b/src/tests/master_authorization_tests.cpp @@ -205,7 +205,7 @@ TEST_F(MasterAuthorizationTest, UnauthorizedTask) driver.launchTasks(offers.get()[0].id(), tasks); AWAIT_READY(status); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_UNAUTHORIZED, status.get().reason()); driver.stop(); http://git-wip-us.apache.org/repos/asf/mesos/blob/a9dc12d4/src/tests/resource_offers_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/resource_offers_tests.cpp b/src/tests/resource_offers_tests.cpp index ee332c3..3c78a21 100644 --- a/src/tests/resource_offers_tests.cpp +++ b/src/tests/resource_offers_tests.cpp @@ -130,7 +130,7 @@ TEST_F(ResourceOffersTest, TaskUsesInvalidFrameworkID) driver.start(); AWAIT_READY(status); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_TRUE(strings::startsWith( status.get().message(), "ExecutorInfo has an invalid FrameworkID")); @@ -179,7 +179,7 @@ TEST_F(ResourceOffersTest, TaskUsesCommandInfoAndExecutorInfo) driver.launchTasks(offers.get()[0].id(), tasks); AWAIT_READY(status); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_TRUE(strings::contains( status.get().message(), "CommandInfo or ExecutorInfo present")); @@ -232,7 +232,7 @@ TEST_F(ResourceOffersTest, TaskUsesNoResources) AWAIT_READY(status); EXPECT_EQ(task.task_id(), status.get().task_id()); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason()); EXPECT_TRUE(status.get().has_message()); EXPECT_EQ("Task uses no resources", status.get().message()); @@ -291,7 +291,7 @@ TEST_F(ResourceOffersTest, TaskUsesInvalidResources) AWAIT_READY(status); EXPECT_EQ(task.task_id(), status.get().task_id()); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason()); EXPECT_TRUE(status.get().has_message()); EXPECT_EQ("Task uses invalid resources: cpus(*):0", status.get().message()); @@ -351,7 +351,7 @@ TEST_F(ResourceOffersTest, TaskUsesMoreResourcesThanOffered) AWAIT_READY(status); EXPECT_EQ(task.task_id(), status.get().task_id()); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason()); EXPECT_TRUE(status.get().has_message()); EXPECT_TRUE(strings::contains( @@ -516,7 +516,7 @@ TEST_F(ResourceOffersTest, ResourcesGetReofferedAfterTaskInfoError) AWAIT_READY(status); EXPECT_EQ(task.task_id(), status.get().task_id()); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason()); EXPECT_TRUE(status.get().has_message()); EXPECT_EQ("Task uses invalid resources: cpus(*):0", status.get().message()); @@ -683,7 +683,7 @@ TEST_F(MultipleExecutorsTest, ExecutorInfoDiffersOnSameSlave) AWAIT_READY(status); EXPECT_EQ(task2.task_id(), status.get().task_id()); - EXPECT_EQ(TASK_LOST, status.get().state()); + EXPECT_EQ(TASK_ERROR, status.get().state()); EXPECT_EQ(TaskStatus::REASON_TASK_INVALID, status.get().reason()); EXPECT_TRUE(status.get().has_message()); EXPECT_TRUE(strings::contains(
