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(®istered));
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;