You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2014/10/01 22:01:21 UTC
git commit: Fixed the flaky SlaveRecoverTest.MultipleSlaves.
Repository: mesos
Updated Branches:
refs/heads/master 5f7aa4d4d -> 602e40c8c
Fixed the flaky SlaveRecoverTest.MultipleSlaves.
Review: https://reviews.apache.org/r/26243
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/602e40c8
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/602e40c8
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/602e40c8
Branch: refs/heads/master
Commit: 602e40c8cc589eb4751fb1577108b7c2935ff804
Parents: 5f7aa4d
Author: Benjamin Mahler <bm...@twitter.com>
Authored: Wed Oct 1 12:17:45 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Wed Oct 1 13:01:11 2014 -0700
----------------------------------------------------------------------
src/tests/slave_recovery_tests.cpp | 62 ++++++++++-----------------------
1 file changed, 19 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/602e40c8/src/tests/slave_recovery_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp
index c7c30d6..4fb357b 100644
--- a/src/tests/slave_recovery_tests.cpp
+++ b/src/tests/slave_recovery_tests.cpp
@@ -569,6 +569,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor)
Clock::settle(); // Wait for slave to schedule reregister timeout.
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
// Now advance time until the reaper reaps the executor.
@@ -688,6 +689,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor)
Clock::settle(); // Wait for slave to schedule reregister timeout.
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
// Now advance time until the reaper reaps the executor.
@@ -801,6 +803,7 @@ TYPED_TEST(SlaveRecoveryTest, DISABLED_RecoveryTimeout)
AWAIT_READY(_recover);
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
Clock::resume();
@@ -1307,10 +1310,8 @@ TYPED_TEST(SlaveRecoveryTest, KillTask)
this->Stop(slave.get());
delete containerizer1.get();
- Future<Nothing> _recover = FUTURE_DISPATCH(_, &Slave::_recover);
-
Future<ReregisterExecutorMessage> reregisterExecutorMessage =
- FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
+ FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
Future<SlaveReregisteredMessage> slaveReregisteredMessage =
FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
@@ -1324,13 +1325,10 @@ TYPED_TEST(SlaveRecoveryTest, KillTask)
Clock::pause();
- AWAIT_READY(_recover);
-
// Wait for the executor to re-register.
AWAIT_READY(reregisterExecutorMessage);
- Clock::settle(); // Wait for slave to schedule reregister timeout.
-
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
Clock::resume();
@@ -1620,16 +1618,15 @@ TYPED_TEST(SlaveRecoveryTest, GCExecutor)
slave = this->StartSlave(containerizer2.get(), flags);
ASSERT_SOME(slave);
- AWAIT_READY(_recover);
-
Clock::pause();
+ AWAIT_READY(_recover);
+
Clock::settle(); // Wait for slave to schedule reregister timeout.
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
- Clock::settle();
-
AWAIT_READY(slaveReregisteredMessage);
Clock::advance(flags.gc_delay);
@@ -2448,8 +2445,6 @@ TYPED_TEST(SlaveRecoveryTest, SchedulerFailover)
AWAIT_READY(sched2Registered);
AWAIT_READY(sched1Error);
- Future<Nothing> _recover = FUTURE_DISPATCH(_, &Slave::_recover);
-
Future<ReregisterExecutorMessage> reregisterExecutorMessage =
FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
@@ -2465,13 +2460,10 @@ TYPED_TEST(SlaveRecoveryTest, SchedulerFailover)
Clock::pause();
- AWAIT_READY(_recover);
-
// Wait for the executor to re-register.
AWAIT_READY(reregisterExecutorMessage);
- Clock::settle(); // Wait for slave to schedule reregister timeout.
-
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
Clock::resume();
@@ -2740,8 +2732,6 @@ TYPED_TEST(SlaveRecoveryTest, MasterFailover)
AWAIT_READY(registered);
// Step 3. Restart the slave and kill the task.
- Future<Nothing> _recover = FUTURE_DISPATCH(_, &Slave::_recover);
-
Future<ReregisterExecutorMessage> reregisterExecutorMessage =
FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
@@ -2757,15 +2747,11 @@ TYPED_TEST(SlaveRecoveryTest, MasterFailover)
Clock::pause();
- AWAIT_READY(_recover);
-
// Wait for the executor to re-register.
AWAIT_READY(reregisterExecutorMessage);
- Clock::settle(); // Wait for slave to schedule reregister timeout.
-
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
-
Clock::resume();
// Wait for the slave to re-register.
@@ -2910,11 +2896,8 @@ TYPED_TEST(SlaveRecoveryTest, MultipleFrameworks)
this->Stop(slave.get());
delete containerizer1.get();
- Future<Nothing> _recover = FUTURE_DISPATCH(_, &Slave::_recover);
-
Future<ReregisterExecutorMessage> reregisterExecutorMessage2 =
FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
-
Future<ReregisterExecutorMessage> reregisterExecutorMessage1 =
FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
@@ -2930,16 +2913,12 @@ TYPED_TEST(SlaveRecoveryTest, MultipleFrameworks)
Clock::pause();
- AWAIT_READY(_recover);
-
// Wait for the executors to re-register.
AWAIT_READY(reregisterExecutorMessage1);
AWAIT_READY(reregisterExecutorMessage2);
- Clock::settle(); // Wait for slave to schedule reregister timeout.
-
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
-
Clock::resume();
// Wait for the slave to re-register.
@@ -3090,8 +3069,10 @@ TYPED_TEST(SlaveRecoveryTest, MultipleSlaves)
this->Stop(slave2.get());
delete containerizer2.get();
- Future<Nothing> _recover2 = FUTURE_DISPATCH(_, &Slave::_recover);
- Future<Nothing> _recover1 = FUTURE_DISPATCH(_, &Slave::_recover);
+ Future<ReregisterExecutorMessage> reregisterExecutorMessage2 =
+ FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
+ Future<ReregisterExecutorMessage> reregisterExecutorMessage1 =
+ FUTURE_PROTOBUF(ReregisterExecutorMessage(), _, _);
Future<SlaveReregisteredMessage> slaveReregisteredMessage2 =
FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
@@ -3113,17 +3094,11 @@ TYPED_TEST(SlaveRecoveryTest, MultipleSlaves)
slave2 = this->StartSlave(containerizer4.get(), flags2);
ASSERT_SOME(slave2);
- AWAIT_READY(_recover1);
- AWAIT_READY(_recover2);
-
- // Wait for slaves to schedule reregister timeout.
- Clock::settle();
+ AWAIT_READY(reregisterExecutorMessage1);
+ AWAIT_READY(reregisterExecutorMessage2);
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
-
- // Make sure all pending timeouts are fired.
- Clock::settle();
-
Clock::resume();
// Wait for the slaves to re-register.
@@ -3250,6 +3225,7 @@ TYPED_TEST(SlaveRecoveryTest, RestartBeforeContainerizerLaunch)
Clock::settle(); // Wait for slave to schedule reregister timeout.
+ // Ensure the slave considers itself recovered.
Clock::advance(EXECUTOR_REREGISTER_TIMEOUT);
Clock::resume();