Updated Branches: refs/heads/master e1875ce9f -> 9dbb5ecec
Fixed the master to drop authentication when non-leading. Review: https://reviews.apache.org/r/16068 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9dbb5ece Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9dbb5ece Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9dbb5ece Branch: refs/heads/master Commit: 9dbb5ecec41321ffa9a1ddf76a00ed3fb09ed0b5 Parents: e1875ce Author: Benjamin Mahler <bmah...@twitter.com> Authored: Thu Dec 5 15:49:14 2013 -0800 Committer: Benjamin Mahler <bmah...@twitter.com> Committed: Fri Dec 6 11:31:49 2013 -0800 ---------------------------------------------------------------------- src/master/master.cpp | 6 ++++++ src/tests/fault_tolerance_tests.cpp | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/9dbb5ece/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index c610e49..cb8e613 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -1815,6 +1815,12 @@ void Master::offer(const FrameworkID& frameworkId, // 'authenticate' message doesn't contain the 'FrameworkID'. void Master::authenticate(const UPID& from, const UPID& pid) { + if (!elected()) { + LOG(WARNING) << "Ignoring authenticate message from " << from + << " since not elected yet"; + return; + } + // Deactivate the framework if it's already registered. foreachvalue (Framework* framework, frameworks) { if (framework->pid == pid) { http://git-wip-us.apache.org/repos/asf/mesos/blob/9dbb5ece/src/tests/fault_tolerance_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp index 74d3447..075a192 100644 --- a/src/tests/fault_tolerance_tests.cpp +++ b/src/tests/fault_tolerance_tests.cpp @@ -817,8 +817,6 @@ TEST_F(FaultToleranceTest, SchedulerFailoverRetriedReregistration) TEST_F(FaultToleranceTest, FrameworkReliableRegistration) { - Clock::pause(); - Try<PID<Master> > master = StartMaster(); ASSERT_SOME(master); @@ -839,15 +837,22 @@ TEST_F(FaultToleranceTest, FrameworkReliableRegistration) EXPECT_CALL(sched, offerRescinded(&driver, _)) .Times(AtMost(1)); + Future<AuthenticateMessage> authenticateMessage = + FUTURE_PROTOBUF(AuthenticateMessage(), _, master.get()); + // Drop the first framework registered message, allow subsequent messages. Future<FrameworkRegisteredMessage> frameworkRegisteredMessage = - DROP_PROTOBUF(FrameworkRegisteredMessage(), _, _); + DROP_PROTOBUF(FrameworkRegisteredMessage(), master.get(), _); driver.start(); + // Ensure authentication occurs. + AWAIT_READY(authenticateMessage); + AWAIT_READY(frameworkRegisteredMessage); // TODO(benh): Pull out constant from SchedulerProcess. + Clock::pause(); Clock::advance(Seconds(1)); AWAIT_READY(registered); // Ensures registered message is received.