You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2016/07/19 00:59:05 UTC
mesos git commit: Fixed the flaky test case `AgentAPITest.GetState`.
Repository: mesos
Updated Branches:
refs/heads/master 061632cb5 -> 6c628d4a3
Fixed the flaky test case `AgentAPITest.GetState`.
This test case is flaky because we didn't wait for the agent receives
and properly handles the ACK of `TASK_KILLED`. Then the agent may have
not yet marked the task completed when we perform the query.
Review: https://reviews.apache.org/r/50016/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6c628d4a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6c628d4a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6c628d4a
Branch: refs/heads/master
Commit: 6c628d4a38663001324d7f5a8878fbb06541a2a9
Parents: 061632c
Author: haosdent huang <ha...@gmail.com>
Authored: Mon Jul 18 17:58:53 2016 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Mon Jul 18 17:58:53 2016 -0700
----------------------------------------------------------------------
src/tests/api_tests.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/6c628d4a/src/tests/api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/api_tests.cpp b/src/tests/api_tests.cpp
index 37bf286..b4bee76 100644
--- a/src/tests/api_tests.cpp
+++ b/src/tests/api_tests.cpp
@@ -3091,16 +3091,26 @@ TEST_P(AgentAPITest, GetState)
ASSERT_EQ(0u, getState.get_executors().completed_executors_size());
}
+ Clock::pause();
+
// Kill the task.
Future<TaskStatus> statusKilled;
EXPECT_CALL(sched, statusUpdate(&driver, _))
.WillOnce(FutureArg<1>(&statusKilled));
+ Future<Nothing> _statusUpdateAcknowledgement =
+ FUTURE_DISPATCH(slave.get()->pid, &Slave::_statusUpdateAcknowledgement);
+
driver.killTask(statusRunning->task_id());
AWAIT_READY(statusKilled);
EXPECT_EQ(TASK_KILLED, statusKilled->state());
+ // Make sure the agent receives and properly handles the ACK of `TASK_KILLED`.
+ AWAIT_READY(_statusUpdateAcknowledgement);
+ Clock::settle();
+ Clock::resume();
+
// Make sure the executor terminated.
Future<Nothing> executorTerminated =
FUTURE_DISPATCH(_, &Slave::executorTerminated);