You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by al...@apache.org on 2017/05/22 08:22:38 UTC

mesos git commit: Added REASON_TASK_HEALTH_CHECK_STATUS_UPDATED task reason.

Repository: mesos
Updated Branches:
  refs/heads/master 2daa82314 -> 16948c248


Added REASON_TASK_HEALTH_CHECK_STATUS_UPDATED task reason.

This gives clear indication about the reason of task
status updates caused by task health update.

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


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

Branch: refs/heads/master
Commit: 16948c248f701b069770dc8d2d01fbc98bb3eb76
Parents: 2daa823
Author: Andrei Budnik <ab...@mesosphere.com>
Authored: Mon May 22 10:17:40 2017 +0200
Committer: Alexander Rukletsov <al...@apache.org>
Committed: Mon May 22 10:21:50 2017 +0200

----------------------------------------------------------------------
 include/mesos/mesos.proto         |  1 +
 include/mesos/v1/mesos.proto      |  1 +
 src/docker/executor.cpp           |  3 ++
 src/launcher/default_executor.cpp |  4 +-
 src/launcher/executor.cpp         |  4 +-
 src/tests/check_tests.cpp         |  6 +++
 src/tests/health_check_tests.cpp  | 84 ++++++++++++++++++++++++++++++++++
 7 files changed, 101 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index e138e2a..5ac35f4 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -1867,6 +1867,7 @@ message TaskStatus {
     REASON_SLAVE_RESTARTED = 12;
     REASON_SLAVE_UNKNOWN = 13;
     REASON_TASK_CHECK_STATUS_UPDATED = 28;
+    REASON_TASK_HEALTH_CHECK_STATUS_UPDATED = 29;
     REASON_TASK_GROUP_INVALID = 25;
     REASON_TASK_GROUP_UNAUTHORIZED = 26;
     REASON_TASK_INVALID = 14;

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/include/mesos/v1/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/mesos.proto b/include/mesos/v1/mesos.proto
index ab617bf..dc58acc 100644
--- a/include/mesos/v1/mesos.proto
+++ b/include/mesos/v1/mesos.proto
@@ -1861,6 +1861,7 @@ message TaskStatus {
     REASON_AGENT_RESTARTED = 12;
     REASON_AGENT_UNKNOWN = 13;
     REASON_TASK_CHECK_STATUS_UPDATED = 28;
+    REASON_TASK_HEALTH_CHECK_STATUS_UPDATED = 29;
     REASON_TASK_GROUP_INVALID = 25;
     REASON_TASK_GROUP_UNAUTHORIZED = 26;
     REASON_TASK_INVALID = 14;

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/src/docker/executor.cpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.cpp b/src/docker/executor.cpp
index 82ae9bd..464a748 100644
--- a/src/docker/executor.cpp
+++ b/src/docker/executor.cpp
@@ -327,6 +327,7 @@ protected:
     status.mutable_task_id()->CopyFrom(healthStatus.task_id());
     status.set_healthy(healthStatus.healthy());
     status.set_state(TASK_RUNNING);
+    status.set_reason(TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED);
 
     if (containerNetworkInfo.isSome()) {
       status.mutable_container_status()->add_network_infos()->CopyFrom(
@@ -482,6 +483,8 @@ private:
     taskStatus.set_state(state);
     taskStatus.set_message(message);
     if (killed && killedByHealthCheck) {
+      // TODO(abudnik): Consider specifying appropriate status update reason,
+      // saying that the task was killed due to a failing health check.
       taskStatus.set_healthy(false);
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/src/launcher/default_executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/default_executor.cpp b/src/launcher/default_executor.cpp
index 5c31f94..1a60e3b 100644
--- a/src/launcher/default_executor.cpp
+++ b/src/launcher/default_executor.cpp
@@ -793,6 +793,8 @@ protected:
 
     // Indicate that a task has been unhealthy upon termination.
     if (unhealthy) {
+      // TODO(abudnik): Consider specifying appropriate status update reason,
+      // saying that the task was killed due to a failing health check.
       taskStatus.set_healthy(false);
     }
 
@@ -1093,7 +1095,7 @@ protected:
         None(),
         None(),
         None(),
-        None(),
+        TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
         None(),
         healthStatus.healthy());
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/src/launcher/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/executor.cpp b/src/launcher/executor.cpp
index b05f73e..9971a67 100644
--- a/src/launcher/executor.cpp
+++ b/src/launcher/executor.cpp
@@ -345,7 +345,7 @@ protected:
         None(),
         None(),
         None(),
-        None(),
+        TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
         None(),
         healthStatus.healthy());
 
@@ -916,6 +916,8 @@ private:
 
     // Indicate that a kill occurred due to a failing health check.
     if (killed && killedByHealthCheck) {
+      // TODO(abudnik): Consider specifying appropriate status update reason,
+      // saying that the task was killed due to a failing health check.
       status.set_healthy(false);
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/src/tests/check_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/check_tests.cpp b/src/tests/check_tests.cpp
index 3607a69..68aa29a 100644
--- a/src/tests/check_tests.cpp
+++ b/src/tests/check_tests.cpp
@@ -952,6 +952,9 @@ TEST_F(CommandExecutorCheckTest, CommandCheckAndHealthCheckNoShadowing)
   const v1::TaskStatus& healthResult = updateHealthResult->status();
 
   ASSERT_EQ(TASK_RUNNING, healthResult.state());
+  ASSERT_EQ(
+      v1::TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      healthResult.reason());
   EXPECT_EQ(taskInfo.task_id(), healthResult.task_id());
   EXPECT_TRUE(healthResult.has_healthy());
   EXPECT_TRUE(healthResult.healthy());
@@ -2257,6 +2260,9 @@ TEST_F(DefaultExecutorCheckTest, CommandCheckAndHealthCheckNoShadowing)
   const v1::TaskStatus& healthResult = updateHealthResult->status();
 
   ASSERT_EQ(TASK_RUNNING, healthResult.state());
+  ASSERT_EQ(
+      v1::TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      healthResult.reason());
   EXPECT_EQ(taskInfo.task_id(), healthResult.task_id());
   EXPECT_TRUE(healthResult.has_healthy());
   EXPECT_TRUE(healthResult.healthy());

http://git-wip-us.apache.org/repos/asf/mesos/blob/16948c24/src/tests/health_check_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/health_check_tests.cpp b/src/tests/health_check_tests.cpp
index 6c1b9a0..d45dd80 100644
--- a/src/tests/health_check_tests.cpp
+++ b/src/tests/health_check_tests.cpp
@@ -318,6 +318,9 @@ TEST_F(HealthCheckTest, HealthyTask)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -473,6 +476,9 @@ TEST_F(HealthCheckTest, ROOT_HealthyTaskWithContainerImage)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -612,6 +618,9 @@ TEST_F(HealthCheckTest, ROOT_DOCKER_DockerHealthyTask)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -694,6 +703,9 @@ TEST_F(HealthCheckTest, HealthyTaskNonShell)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->healthy());
 
   driver.stop();
@@ -759,14 +771,23 @@ TEST_F(HealthCheckTest, HealthStatusChange)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->healthy());
 
   AWAIT_READY(statusUnhealthy);
   EXPECT_EQ(TASK_RUNNING, statusUnhealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusUnhealthy->reason());
   EXPECT_FALSE(statusUnhealthy->healthy());
 
   AWAIT_READY(statusHealthyAgain);
   EXPECT_EQ(TASK_RUNNING, statusHealthyAgain->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthyAgain->reason());
   EXPECT_TRUE(statusHealthyAgain->healthy());
 
   driver.stop();
@@ -891,14 +912,23 @@ TEST_F(HealthCheckTest, ROOT_DOCKER_DockerHealthStatusChange)
 
   AWAIT_READY(statusUnhealthy);
   EXPECT_EQ(TASK_RUNNING, statusUnhealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusUnhealthy->reason());
   EXPECT_FALSE(statusUnhealthy->healthy());
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->healthy());
 
   AWAIT_READY(statusUnhealthyAgain);
   EXPECT_EQ(TASK_RUNNING, statusUnhealthyAgain->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusUnhealthyAgain->reason());
   EXPECT_FALSE(statusUnhealthyAgain->healthy());
 
   // Check the temporary file created in host still
@@ -983,18 +1013,30 @@ TEST_F(HealthCheckTest, ConsecutiveFailures)
 
   AWAIT_READY(status1);
   EXPECT_EQ(TASK_RUNNING, status1->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      status1->reason());
   EXPECT_FALSE(status1->healthy());
 
   AWAIT_READY(status2);
   EXPECT_EQ(TASK_RUNNING, status2->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      status2->reason());
   EXPECT_FALSE(status2->healthy());
 
   AWAIT_READY(status3);
   EXPECT_EQ(TASK_RUNNING, status3->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      status3->reason());
   EXPECT_FALSE(status3->healthy());
 
   AWAIT_READY(status4);
   EXPECT_EQ(TASK_RUNNING, status4->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      status4->reason());
   EXPECT_FALSE(status4->healthy());
 
   AWAIT_READY(statusKilled);
@@ -1054,6 +1096,9 @@ TEST_F(HealthCheckTest, EnvironmentSetup)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->healthy());
 
   driver.stop();
@@ -1170,6 +1215,9 @@ TEST_F(HealthCheckTest, CheckCommandTimeout)
 
   AWAIT_READY(statusUnhealthy);
   EXPECT_EQ(TASK_RUNNING, statusUnhealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusUnhealthy->reason());
   EXPECT_FALSE(statusUnhealthy->healthy());
 
   AWAIT_READY(statusKilled);
@@ -1239,11 +1287,17 @@ TEST_F(HealthCheckTest, HealthyToUnhealthyTransitionWithinGracePeriod)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
   AWAIT_READY(statusUnhealthy);
   EXPECT_EQ(TASK_RUNNING, statusUnhealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusUnhealthy->reason());
   EXPECT_TRUE(statusUnhealthy->has_healthy());
   EXPECT_FALSE(statusUnhealthy->healthy());
 
@@ -1323,6 +1377,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(HealthCheckTest, HealthyTaskViaHTTP)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1408,6 +1465,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(HealthCheckTest, HealthyTaskViaHTTPWithoutType)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1485,6 +1545,9 @@ TEST_F(HealthCheckTest, HealthyTaskViaTCP)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1570,6 +1633,9 @@ TEST_F(HealthCheckTest, ROOT_INTERNET_CURL_HealthyTaskViaHTTPWithContainerImage)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1658,6 +1724,9 @@ TEST_F(HealthCheckTest,
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1747,6 +1816,9 @@ TEST_F(HealthCheckTest, ROOT_INTERNET_CURL_HealthyTaskViaTCPWithContainerImage)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1854,6 +1926,9 @@ TEST_F(HealthCheckTest, ROOT_DOCKER_DockerHealthyTaskViaHTTP)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -1984,6 +2059,9 @@ TEST_F(HealthCheckTest, ROOT_DOCKER_DockerHealthyTaskViaHTTPS)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -2113,6 +2191,9 @@ TEST_F(HealthCheckTest, ROOT_DOCKER_DockerHealthyTaskViaTCP)
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy->state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy->has_healthy());
   EXPECT_TRUE(statusHealthy->healthy());
 
@@ -2247,6 +2328,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(
 
   AWAIT_READY(statusHealthy);
   EXPECT_EQ(TASK_RUNNING, statusHealthy.get().state());
+  EXPECT_EQ(
+      TaskStatus::REASON_TASK_HEALTH_CHECK_STATUS_UPDATED,
+      statusHealthy->reason());
   EXPECT_TRUE(statusHealthy.get().has_healthy());
   EXPECT_TRUE(statusHealthy.get().healthy());