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(

Reply via email to