You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2014/08/05 23:54:58 UTC

[1/2] git commit: Fixed the flaky MasterTest.RecoveredSlaveReregisters test.

Repository: mesos
Updated Branches:
  refs/heads/master 1909a06e1 -> 5acea829b


Fixed the flaky MasterTest.RecoveredSlaveReregisters test.

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


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

Branch: refs/heads/master
Commit: 5acea829b243a9c7ce9001cfadd674ed93997c86
Parents: 00634d2
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Aug 5 14:15:05 2014 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Aug 5 14:54:32 2014 -0700

----------------------------------------------------------------------
 src/tests/master_tests.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/5acea829/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index 5a1cf7f..87bd8c0 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -1721,8 +1721,14 @@ TEST_F(MasterTest, RecoveredSlaveReregisters)
   EXPECT_CALL(sched, registered(&driver, _, _))
     .WillOnce(FutureSatisfy(&registered));
 
+  // Ignore all offer related calls. The scheduler might receive
+  // offerRescinded calls because the slave might re-register due to
+  // ping timeout.
   EXPECT_CALL(sched, resourceOffers(&driver, _))
-    .WillRepeatedly(Return()); // Ignore offers.
+    .WillRepeatedly(Return());
+
+  EXPECT_CALL(sched, offerRescinded(&driver, _))
+    .WillRepeatedly(Return());
 
   driver.start();
 


[2/2] git commit: Made MASTER_PING_TIMEOUT a function for fixing MESOS-1673.

Posted by ji...@apache.org.
Made MASTER_PING_TIMEOUT a function for fixing MESOS-1673.

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


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

Branch: refs/heads/master
Commit: 00634d2c6da4a615d434b58d04958f35ee2b633e
Parents: 1909a06
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Aug 5 14:32:37 2014 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Aug 5 14:54:32 2014 -0700

----------------------------------------------------------------------
 src/master/constants.hpp  |  3 +++
 src/slave/constants.cpp   |  7 +++++--
 src/slave/constants.hpp   | 11 +++++++----
 src/slave/slave.cpp       |  8 +++++---
 src/tests/slave_tests.cpp |  4 ++--
 5 files changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/00634d2c/src/master/constants.hpp
----------------------------------------------------------------------
diff --git a/src/master/constants.hpp b/src/master/constants.hpp
index eadc52b..ce7995b 100644
--- a/src/master/constants.hpp
+++ b/src/master/constants.hpp
@@ -42,6 +42,9 @@ namespace master {
 // TODO(vinod): Move constants that are only used in flags to
 // 'master/flags.hpp'.
 
+// TODO(jieyu): Use static functions for all the constants. See more
+// details in MESOS-1023.
+
 // Maximum number of slot offers to have outstanding for each framework.
 extern const int MAX_OFFERS_PER_FRAMEWORK;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/00634d2c/src/slave/constants.cpp
----------------------------------------------------------------------
diff --git a/src/slave/constants.cpp b/src/slave/constants.cpp
index f00300d..4339c7c 100644
--- a/src/slave/constants.cpp
+++ b/src/slave/constants.cpp
@@ -32,8 +32,6 @@ const Duration EXECUTOR_REREGISTER_TIMEOUT = Seconds(2);
 const Duration EXECUTOR_SIGNAL_ESCALATION_TIMEOUT = Seconds(3);
 const Duration STATUS_UPDATE_RETRY_INTERVAL_MIN = Seconds(10);
 const Duration STATUS_UPDATE_RETRY_INTERVAL_MAX = Minutes(10);
-const Duration MASTER_PING_TIMEOUT =
-  master::SLAVE_PING_TIMEOUT * master::MAX_SLAVE_PING_TIMEOUTS;
 const Duration REGISTRATION_BACKOFF_FACTOR = Seconds(1);
 const Duration REGISTER_RETRY_INTERVAL_MAX = Minutes(1);
 const Duration GC_DELAY = Weeks(1);
@@ -53,6 +51,11 @@ const uint16_t DEFAULT_EPHEMERAL_PORTS_PER_CONTAINER = 16;
 const std::string DEFAULT_EPHEMERAL_PORTS = "[30001-30999]";
 #endif
 
+Duration MASTER_PING_TIMEOUT()
+{
+  return master::SLAVE_PING_TIMEOUT * master::MAX_SLAVE_PING_TIMEOUTS;
+}
+
 } // namespace slave {
 } // namespace internal {
 } // namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/00634d2c/src/slave/constants.hpp
----------------------------------------------------------------------
diff --git a/src/slave/constants.hpp b/src/slave/constants.hpp
index bc16fe5..a6bae1e 100644
--- a/src/slave/constants.hpp
+++ b/src/slave/constants.hpp
@@ -34,6 +34,9 @@ namespace slave {
 // So we've moved these to have external linkage but perhaps in the future
 // we can revert this.
 
+// TODO(jieyu): Use static functions for all the constants. See more
+// details in MESOS-1023.
+
 extern const Duration EXECUTOR_REGISTRATION_TIMEOUT;
 extern const Duration EXECUTOR_SHUTDOWN_GRACE_PERIOD;
 extern const Duration EXECUTOR_REREGISTER_TIMEOUT;
@@ -45,10 +48,6 @@ extern const Duration GC_DELAY;
 extern const Duration DISK_WATCH_INTERVAL;
 extern const Duration RESOURCE_MONITORING_INTERVAL;
 
-// If no pings received within this timeout, then the slave will
-// trigger a re-detection of the master to cause a re-registration.
-extern const Duration MASTER_PING_TIMEOUT;
-
 // Default backoff interval used by the slave to wait before registration.
 extern const Duration REGISTRATION_BACKOFF_FACTOR;
 
@@ -98,6 +97,10 @@ extern const uint16_t DEFAULT_EPHEMERAL_PORTS_PER_CONTAINER;
 extern const std::string DEFAULT_EPHEMERAL_PORTS;
 #endif
 
+// If no pings received within this timeout, then the slave will
+// trigger a re-detection of the master to cause a re-registration.
+Duration MASTER_PING_TIMEOUT();
+
 } // namespace slave {
 } // namespace internal {
 } // namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/00634d2c/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index ef921e1..c56cac8 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -590,7 +590,9 @@ void Slave::detected(const Future<Option<MasterInfo> >& _master)
   Option<MasterInfo> latest;
 
   if (_master.isDiscarded()) {
-    LOG(INFO) << "No pings from master received within " << MASTER_PING_TIMEOUT;
+    LOG(INFO) << "No pings from master received within "
+              << MASTER_PING_TIMEOUT();
+
     latest = None();
     master = None();
   } else if (_master.get().isNone()) {
@@ -789,7 +791,7 @@ void Slave::registered(const UPID& from, const SlaveID& slaveId)
       Timer::cancel(pingTimer);
 
       pingTimer = delay(
-          MASTER_PING_TIMEOUT,
+          MASTER_PING_TIMEOUT(),
           self(),
           &Slave::pingTimeout,
           detection);
@@ -2346,7 +2348,7 @@ void Slave::ping(const UPID& from, const string& body)
   Timer::cancel(pingTimer);
 
   pingTimer = delay(
-      MASTER_PING_TIMEOUT,
+      MASTER_PING_TIMEOUT(),
       self(),
       &Slave::pingTimeout,
       detection);

http://git-wip-us.apache.org/repos/asf/mesos/blob/00634d2c/src/tests/slave_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
index 765d8ce..3a7fee6 100644
--- a/src/tests/slave_tests.cpp
+++ b/src/tests/slave_tests.cpp
@@ -933,7 +933,7 @@ TEST_F(SlaveTest, PingTimeoutNoPings)
   Future<SlaveReregisteredMessage> slaveReregisteredMessage =
     FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
 
-  Clock::advance(slave::MASTER_PING_TIMEOUT);
+  Clock::advance(slave::MASTER_PING_TIMEOUT());
 
   AWAIT_READY(detected);
   AWAIT_READY(slaveReregisteredMessage);
@@ -976,7 +976,7 @@ TEST_F(SlaveTest, PingTimeoutSomePings)
   Future<SlaveReregisteredMessage> slaveReregisteredMessage =
     FUTURE_PROTOBUF(SlaveReregisteredMessage(), _, _);
 
-  Clock::advance(slave::MASTER_PING_TIMEOUT);
+  Clock::advance(slave::MASTER_PING_TIMEOUT());
 
   AWAIT_READY(detected);
   AWAIT_READY(slaveReregisteredMessage);