Repository: mesos Updated Branches: refs/heads/master df012a241 -> 43e4446c6
Updated master to send PingSlaveMessage instead of "PING". Review: https://reviews.apache.org/r/38050 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/43e4446c Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/43e4446c Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/43e4446c Branch: refs/heads/master Commit: 43e4446c648947054b31f52d8256435e0a727c19 Parents: df012a2 Author: Yong Qiao Wang <[email protected]> Authored: Thu Sep 3 18:52:34 2015 -0700 Committer: Vinod Kone <[email protected]> Committed: Thu Sep 3 18:52:34 2015 -0700 ---------------------------------------------------------------------- src/master/master.cpp | 25 +++++++++++++------------ src/tests/partition_tests.cpp | 26 +++++++++++++------------- src/tests/slave_recovery_tests.cpp | 6 +++--- src/tests/slave_tests.cpp | 18 +++++++++--------- 4 files changed, 38 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/43e4446c/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index 56bcbcc..5589eca 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -118,7 +118,7 @@ using mesos::master::RoleInfo; using mesos::master::allocator::Allocator; -class SlaveObserver : public Process<SlaveObserver> +class SlaveObserver : public ProtobufProcess<SlaveObserver> { public: SlaveObserver(const UPID& _slave, @@ -142,9 +142,11 @@ public: pinged(false), connected(true) { - // TODO(vinod): Deprecate this handler in 0.22.0 in favor of a - // new PongSlaveMessage handler. - install("PONG", &SlaveObserver::pong); + // TODO(Wang Yong Qiao): For backwards compatibility, this handler is kept. + // Suggest to remove this handler in 0.26.0. + install("PONG", &SlaveObserver::pongOld); + + install<PongSlaveMessage>(&SlaveObserver::pong); } void reconnect() @@ -165,21 +167,20 @@ protected: void ping() { - // TODO(vinod): In 0.22.0, master should send the PingSlaveMessage - // instead of sending "PING" with the encoded PingSlaveMessage. - // Currently we do not do this for backwards compatibility with - // slaves on 0.20.0. PingSlaveMessage message; message.set_connected(connected); - string data; - CHECK(message.SerializeToString(&data)); - send(slave, "PING", data.data(), data.size()); + send(slave, message); pinged = true; delay(slavePingTimeout, self(), &SlaveObserver::timeout); } - void pong(const UPID& from, const string& body) + void pongOld(const UPID& from, const string& body) + { + pong(); + } + + void pong() { timeouts = 0; pinged = false; http://git-wip-us.apache.org/repos/asf/mesos/blob/43e4446c/src/tests/partition_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/partition_tests.cpp b/src/tests/partition_tests.cpp index b7030ad..9356c0b 100644 --- a/src/tests/partition_tests.cpp +++ b/src/tests/partition_tests.cpp @@ -76,10 +76,10 @@ TEST_F(PartitionTest, PartitionedSlave) // Set these expectations up before we spawn the slave so that we // don't miss the first PING. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); // Drop all the PONGs to simulate slave partition. - DROP_MESSAGES(Eq("PONG"), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); @@ -118,7 +118,7 @@ TEST_F(PartitionTest, PartitionedSlave) if (pings == masterFlags.max_slave_ping_timeouts) { break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); } @@ -160,8 +160,8 @@ TEST_F(PartitionTest, PartitionedSlaveReregistration) // from the slave. Note that we don't match on the master / slave // PIDs because it's actually the SlaveObserver Process that sends // the pings. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); - DROP_MESSAGES(Eq("PONG"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); MockExecutor exec(DEFAULT_EXECUTOR_ID); @@ -245,7 +245,7 @@ TEST_F(PartitionTest, PartitionedSlaveReregistration) if (pings == masterFlags.max_slave_ping_timeouts) { break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); Clock::settle(); } @@ -309,8 +309,8 @@ TEST_F(PartitionTest, PartitionedSlaveStatusUpdates) // from the slave. Note that we don't match on the master / slave // PIDs because it's actually the SlaveObserver Process that sends // the pings. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); - DROP_MESSAGES(Eq("PONG"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); Future<SlaveRegisteredMessage> slaveRegisteredMessage = FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _); @@ -362,7 +362,7 @@ TEST_F(PartitionTest, PartitionedSlaveStatusUpdates) if (pings == masterFlags.max_slave_ping_timeouts) { break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); Clock::settle(); } @@ -427,8 +427,8 @@ TEST_F(PartitionTest, PartitionedSlaveExitedExecutor) // from the slave. Note that we don't match on the master / slave // PIDs because it's actually the SlaveObserver Process that sends // the pings. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); - DROP_MESSAGES(Eq("PONG"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); MockExecutor exec(DEFAULT_EXECUTOR_ID); TestContainerizer containerizer(&exec); @@ -506,7 +506,7 @@ TEST_F(PartitionTest, PartitionedSlaveExitedExecutor) if (pings == masterFlags.max_slave_ping_timeouts) { break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); Clock::settle(); } @@ -556,7 +556,7 @@ TEST_F(PartitionTest, OneWayPartitionMasterToSlave) FUTURE_MESSAGE(Eq(SlaveRegisteredMessage().GetTypeName()), _, _); // Ensure a ping reaches the slave. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Try<PID<Slave>> slave = StartSlave(); ASSERT_SOME(slave); http://git-wip-us.apache.org/repos/asf/mesos/blob/43e4446c/src/tests/slave_recovery_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp index 4d137e0..234e60d 100644 --- a/src/tests/slave_recovery_tests.cpp +++ b/src/tests/slave_recovery_tests.cpp @@ -2469,10 +2469,10 @@ TYPED_TEST(SlaveRecoveryTest, PartitionedSlave) // Set these expectations up before we spawn the slave so that we // don't miss the first PING. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); // Drop all the PONGs to simulate slave partition. - DROP_MESSAGES(Eq("PONG"), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); slave::Flags flags = this->CreateSlaveFlags(); @@ -2542,7 +2542,7 @@ TYPED_TEST(SlaveRecoveryTest, PartitionedSlave) if (pings == masterFlags.max_slave_ping_timeouts) { break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); Clock::settle(); } http://git-wip-us.apache.org/repos/asf/mesos/blob/43e4446c/src/tests/slave_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp index 2411918..6bc0cba 100644 --- a/src/tests/slave_tests.cpp +++ b/src/tests/slave_tests.cpp @@ -1508,7 +1508,7 @@ TEST_F(SlaveTest, PingTimeoutNoPings) ASSERT_SOME(master); // Block all pings to the slave. - DROP_MESSAGES(Eq("PING"), _, _); + DROP_MESSAGES(Eq(PingSlaveMessage().GetTypeName()), _, _); Future<SlaveRegisteredMessage> slaveRegisteredMessage = FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _); @@ -1562,7 +1562,7 @@ TEST_F(SlaveTest, PingTimeoutSomePings) Clock::pause(); // Ensure a ping reaches the slave. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); @@ -1571,7 +1571,7 @@ TEST_F(SlaveTest, PingTimeoutSomePings) // Now block further pings from the master and advance // the clock to trigger a re-detection and re-registration on // the slave. - DROP_MESSAGES(Eq("PING"), _, _); + DROP_MESSAGES(Eq(PingSlaveMessage().GetTypeName()), _, _); Future<Nothing> detected = FUTURE_DISPATCH(_, &Slave::detected); @@ -1598,10 +1598,10 @@ TEST_F(SlaveTest, RateLimitSlaveShutdown) // Set these expectations up before we spawn the slave so that we // don't miss the first PING. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); // Drop all the PONGs to simulate health check timeout. - DROP_MESSAGES(Eq("PONG"), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); Future<SlaveRegisteredMessage> slaveRegisteredMessage = FUTURE_PROTOBUF(SlaveRegisteredMessage(), _, _); @@ -1631,7 +1631,7 @@ TEST_F(SlaveTest, RateLimitSlaveShutdown) Clock::advance(masterFlags.slave_ping_timeout); break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); } @@ -1662,10 +1662,10 @@ TEST_F(SlaveTest, CancelSlaveShutdown) // Set these expectations up before we spawn the slave so that we // don't miss the first PING. - Future<Message> ping = FUTURE_MESSAGE(Eq("PING"), _, _); + Future<Message> ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); // Drop all the PONGs to simulate health check timeout. - DROP_MESSAGES(Eq("PONG"), _, _); + DROP_MESSAGES(Eq(PongSlaveMessage().GetTypeName()), _, _); // No shutdown should occur during the test! EXPECT_NO_FUTURE_PROTOBUFS(ShutdownMessage(), _, _); @@ -1696,7 +1696,7 @@ TEST_F(SlaveTest, CancelSlaveShutdown) Clock::advance(masterFlags.slave_ping_timeout); break; } - ping = FUTURE_MESSAGE(Eq("PING"), _, _); + ping = FUTURE_MESSAGE(Eq(PingSlaveMessage().GetTypeName()), _, _); Clock::advance(masterFlags.slave_ping_timeout); }
