You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ne...@apache.org on 2017/03/09 16:03:49 UTC

mesos git commit: Fixed flaky test FaultToleranceTest.FrameworkReregister.

Repository: mesos
Updated Branches:
  refs/heads/master b8b216331 -> 009963d9d


Fixed flaky test FaultToleranceTest.FrameworkReregister.

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


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

Branch: refs/heads/master
Commit: 009963d9d2f1fbc130e20dc696010c9b5eede52f
Parents: b8b2163
Author: Jay Guo <gu...@gmail.com>
Authored: Thu Mar 9 11:03:32 2017 -0500
Committer: Neil Conway <ne...@gmail.com>
Committed: Thu Mar 9 11:03:37 2017 -0500

----------------------------------------------------------------------
 src/tests/fault_tolerance_tests.cpp | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/009963d9/src/tests/fault_tolerance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp
index b13a7e2..d6bde7f 100644
--- a/src/tests/fault_tolerance_tests.cpp
+++ b/src/tests/fault_tolerance_tests.cpp
@@ -785,6 +785,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(
 }
 
 
+// This test ensures framework re-registers with master after failover.
+// Previous offers are rescinded and re-offered to the framework after
+// re-registration.
 TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister)
 {
   // NOTE: We do not use `StartMaster()` because we need to access flags later.
@@ -795,10 +798,16 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister)
 
   StandaloneMasterDetector slaveDetector(master.get()->pid);
 
+  Future<SlaveRegisteredMessage> slaveRegisteredMessage =
+    FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _);
+
   slave::Flags agentFlags = CreateSlaveFlags();
   Try<Owned<cluster::Slave>> slave = StartSlave(&slaveDetector, agentFlags);
   ASSERT_SOME(slave);
 
+  // Wait for slave registration.
+  AWAIT_READY(slaveRegisteredMessage);
+
   // Create a detector for the scheduler driver because we want the
   // spurious leading master change to be known by the scheduler
   // driver only.
@@ -806,7 +815,9 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister)
   MockScheduler sched;
   TestingMesosSchedulerDriver driver(&sched, &schedDetector);
 
-  EXPECT_CALL(sched, registered(&driver, _, _));
+  Future<Nothing> registered;
+  EXPECT_CALL(sched, registered(&driver, _, _))
+    .WillOnce(FutureSatisfy(&registered));
 
   Future<Nothing> resourceOffers;
   EXPECT_CALL(sched, resourceOffers(&driver, _))
@@ -818,15 +829,14 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(FaultToleranceTest, FrameworkReregister)
 
   driver.start();
 
-  // Trigger authentication, registration, and offers to the agent.
-  // Once we advance the clock, taking `Clock::now` gives us the
-  // precise registration time.
-  Clock::advance(agentFlags.authentication_backoff_factor);
-  Clock::advance(agentFlags.registration_backoff_factor);
-  Clock::advance(masterFlags.allocation_interval);
+  AWAIT_READY(registered);
 
+  // Take `Clock::now` as precise registration time.
   process::Time registerTime = Clock::now();
 
+  // Advance the clock and trigger a batch allocation.
+  Clock::advance(masterFlags.allocation_interval);
+
   AWAIT_READY(resourceOffers);
 
   Future<Nothing> disconnected;