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.

Reply via email to