You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2013/08/29 01:10:30 UTC

[2/2] git commit: Reverted "Added resource checks to slave recovery tests to ensure resources are re-offered after restarts."

Reverted "Added resource checks to slave recovery tests to ensure
resources are re-offered after restarts."

This reverts commit 400a88f9817bb102522b08b83dca400380ad8a9b.


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

Branch: refs/heads/master
Commit: 6f7a4d74539e65de4fac2b81ed9a5202ced23b17
Parents: 5e8e4da
Author: Benjamin Mahler <bm...@twitter.com>
Authored: Wed Aug 28 15:46:46 2013 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Wed Aug 28 15:53:30 2013 -0700

----------------------------------------------------------------------
 src/tests/slave_recovery_tests.cpp | 135 ++++++++++----------------------
 1 file changed, 41 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/6f7a4d74/src/tests/slave_recovery_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp
index 78f42ff..57636c1 100644
--- a/src/tests/slave_recovery_tests.cpp
+++ b/src/tests/slave_recovery_tests.cpp
@@ -524,16 +524,17 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor)
 
   EXPECT_CALL(sched, registered(_, _, _));
 
-  Future<vector<Offer> > offers1;
+  Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1));
+    .WillOnce(FutureArg<1>(&offers))
+    .WillRepeatedly(Return());      // Ignore subsequent offers.
 
   driver.start();
 
-  AWAIT_READY(offers1);
-  EXPECT_NE(0u, offers1.get().size());
+  AWAIT_READY(offers);
+  EXPECT_NE(0u, offers.get().size());
 
-  TaskInfo task = createTask(offers1.get()[0], "sleep 1000");
+  TaskInfo task = createTask(offers.get()[0], "sleep 1000");
   vector<TaskInfo> tasks;
   tasks.push_back(task); // Long-running task.
 
@@ -541,7 +542,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor)
   Future<Message> registerExecutor =
     DROP_MESSAGE(Eq(RegisterExecutorMessage().GetTypeName()), _, _);
 
-  driver.launchTasks(offers1.get()[0].id(), tasks);
+  driver.launchTasks(offers.get()[0].id(), tasks);
 
   // Stop the slave before the executor is registered.
   AWAIT_READY(registerExecutor);
@@ -559,11 +560,6 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor)
   // Restart the slave (use same flags) with a new isolator.
   TypeParam isolator2;
 
-  Future<vector<Offer> > offers2;
-  EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers2))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
-
   slave = this->StartSlave(&isolator2, flags);
   ASSERT_SOME(slave);
 
@@ -587,11 +583,6 @@ TYPED_TEST(SlaveRecoveryTest, RecoverUnregisteredExecutor)
 
   Clock::resume();
 
-  // Master should subsequently reoffer the same resources.
-  AWAIT_READY(offers2);
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
-
   driver.stop();
   driver.join();
 
@@ -626,16 +617,17 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor)
 
   EXPECT_CALL(sched, registered(_, _, _));
 
-  Future<vector<Offer> > offers1;
+  Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1));
+    .WillOnce(FutureArg<1>(&offers))
+    .WillRepeatedly(Return());      // Ignore subsequent offers.
 
   driver.start();
 
-  AWAIT_READY(offers1);
-  EXPECT_NE(0u, offers1.get().size());
+  AWAIT_READY(offers);
+  EXPECT_NE(0u, offers.get().size());
 
-  TaskInfo task = createTask(offers1.get()[0], "sleep 1000");
+  TaskInfo task = createTask(offers.get()[0], "sleep 1000");
   vector<TaskInfo> tasks;
   tasks.push_back(task); // Long-running task.
 
@@ -647,7 +639,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor)
   Future<Nothing> ack =
     FUTURE_DISPATCH(_, &Slave::_statusUpdateAcknowledgement);
 
-  driver.launchTasks(offers1.get()[0].id(), tasks);
+  driver.launchTasks(offers.get()[0].id(), tasks);
 
   // Capture the executor pid.
   AWAIT_READY(registerExecutor);
@@ -670,11 +662,6 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor)
   // Restart the slave (use same flags) with a new isolator.
   TypeParam isolator2;
 
-  Future<vector<Offer> > offers2;
-  EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers2))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
-
   slave = this->StartSlave(&isolator2, flags);
   ASSERT_SOME(slave);
 
@@ -696,13 +683,6 @@ TYPED_TEST(SlaveRecoveryTest, RecoverTerminatedExecutor)
   AWAIT_READY(status);
   ASSERT_EQ(TASK_FAILED, status.get().state());
 
-  Clock::resume();
-
-  // Master should subsequently reoffer the same resources.
-  AWAIT_READY(offers2);
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
-
   driver.stop();
   driver.join();
 
@@ -830,17 +810,17 @@ TYPED_TEST(SlaveRecoveryTest, RecoverCompletedExecutor)
 
   EXPECT_CALL(sched, registered(_, _, _));
 
-  Future<vector<Offer> > offers1;
+  Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
+    .WillOnce(FutureArg<1>(&offers))
+    .WillRepeatedly(Return());      // Ignore subsequent offers.
 
   driver.start();
 
-  AWAIT_READY(offers1);
-  EXPECT_NE(0u, offers1.get().size());
+  AWAIT_READY(offers);
+  EXPECT_NE(0u, offers.get().size());
 
-  TaskInfo task = createTask(offers1.get()[0], "exit 0");
+  TaskInfo task = createTask(offers.get()[0], "exit 0");
   vector<TaskInfo> tasks;
   tasks.push_back(task); // Short-lived task.
 
@@ -853,7 +833,7 @@ TYPED_TEST(SlaveRecoveryTest, RecoverCompletedExecutor)
   Future<Nothing> schedule = FUTURE_DISPATCH(
       _, &GarbageCollectorProcess::schedule);
 
-  driver.launchTasks(offers1.get()[0].id(), tasks);
+  driver.launchTasks(offers.get()[0].id(), tasks);
 
   // We use 'gc.schedule' as a proxy for the cleanup of the executor.
   AWAIT_READY(schedule);
@@ -866,22 +846,12 @@ TYPED_TEST(SlaveRecoveryTest, RecoverCompletedExecutor)
   // Restart the slave (use same flags) with a new isolator.
   TypeParam isolator2;
 
-  Future<vector<Offer> > offers2;
-  EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers2))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
-
   slave = this->StartSlave(&isolator2, flags);
   ASSERT_SOME(slave);
 
   // We use 'gc.schedule' as a proxy for the cleanup of the executor.
   AWAIT_READY(schedule2);
 
-  // Make sure all slave resources are reoffered.
-  AWAIT_READY(offers2);
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
-
   driver.stop();
   driver.join();
 
@@ -917,8 +887,7 @@ TYPED_TEST(SlaveRecoveryTest, CleanupExecutor)
 
   Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
+    .WillOnce(FutureArg<1>(&offers));
 
   driver.start();
 
@@ -1230,8 +1199,7 @@ TYPED_TEST(SlaveRecoveryTest, KillTask)
 
   Future<vector<Offer> > offers1;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
+    .WillOnce(FutureArg<1>(&offers1));
 
   driver.start();
 
@@ -1262,11 +1230,6 @@ TYPED_TEST(SlaveRecoveryTest, KillTask)
   // Restart the slave (use same flags) with a new isolator.
   TypeParam isolator2;
 
-  Future<vector<Offer> > offers2;
-  EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers2))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
-
   slave = this->StartSlave(&isolator2, flags);
   ASSERT_SOME(slave);
 
@@ -1312,11 +1275,6 @@ TYPED_TEST(SlaveRecoveryTest, KillTask)
 
   Clock::resume();
 
-  // Make sure all slave resources are reoffered.
-  AWAIT_READY(offers2);
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
-
   driver.stop();
   driver.join();
 
@@ -1352,22 +1310,23 @@ TYPED_TEST(SlaveRecoveryTest, GCExecutor)
 
   EXPECT_CALL(sched, registered(_, _, _));
 
-  Future<vector<Offer> > offers1;
+  Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1));
+    .WillOnce(FutureArg<1>(&offers))
+    .WillRepeatedly(Return()); // Ignore subsequent offers.
 
   driver.start();
 
-  AWAIT_READY(offers1);
-  EXPECT_NE(0u, offers1.get().size());
+  AWAIT_READY(offers);
+  EXPECT_NE(0u, offers.get().size());
 
-  TaskInfo task = createTask(offers1.get()[0], "sleep 1000");
+  TaskInfo task = createTask(offers.get()[0], "sleep 1000");
   vector<TaskInfo> tasks;
   tasks.push_back(task); // Long-running task
 
   // Capture the slave and framework ids.
-  SlaveID slaveId = offers1.get()[0].slave_id();
-  FrameworkID frameworkId = offers1.get()[0].framework_id();
+  SlaveID slaveId = offers.get()[0].slave_id();
+  FrameworkID frameworkId = offers.get()[0].framework_id();
 
   Future<Message> registerExecutorMessage =
     FUTURE_MESSAGE(Eq(RegisterExecutorMessage().GetTypeName()), _, _);
@@ -1377,7 +1336,7 @@ TYPED_TEST(SlaveRecoveryTest, GCExecutor)
     .WillOnce(FutureSatisfy(&status))
     .WillRepeatedly(Return()); // Ignore subsequent updates.
 
-  driver.launchTasks(offers1.get()[0].id(), tasks);
+  driver.launchTasks(offers.get()[0].id(), tasks);
 
   // Capture the executor id and pid.
   AWAIT_READY(registerExecutorMessage);
@@ -1544,9 +1503,6 @@ TYPED_TEST(SlaveRecoveryTest, ShutdownSlave)
   AWAIT_READY(offers2);
 
   EXPECT_NE(0u, offers2.get().size());
-  // Make sure all slave resources are reoffered.
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
 
   // Ensure the slave id is different.
   ASSERT_NE(
@@ -1687,29 +1643,30 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileKillTask)
 
   EXPECT_CALL(sched, registered(_, _, _));
 
-  Future<vector<Offer> > offers1;
+  Future<vector<Offer> > offers;
   EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers1));
+    .WillOnce(FutureArg<1>(&offers))
+    .WillRepeatedly(Return()); // Ignore subsequent offers.
 
   driver.start();
 
-  AWAIT_READY(offers1);
-  EXPECT_NE(0u, offers1.get().size());
+  AWAIT_READY(offers);
+  EXPECT_NE(0u, offers.get().size());
 
-  TaskInfo task = createTask(offers1.get()[0], "sleep 1000");
+  TaskInfo task = createTask(offers.get()[0], "sleep 1000");
   vector<TaskInfo> tasks;
   tasks.push_back(task); // Long-running task
 
   // Capture the slave and framework ids.
-  SlaveID slaveId = offers1.get()[0].slave_id();
-  FrameworkID frameworkId = offers1.get()[0].framework_id();
+  SlaveID slaveId = offers.get()[0].slave_id();
+  FrameworkID frameworkId = offers.get()[0].framework_id();
 
   EXPECT_CALL(sched, statusUpdate(_, _)); // TASK_RUNNING
 
   Future<Nothing> _statusUpdateAcknowledgement =
     FUTURE_DISPATCH(_, &Slave::_statusUpdateAcknowledgement);
 
-  driver.launchTasks(offers1.get()[0].id(), tasks);
+  driver.launchTasks(offers.get()[0].id(), tasks);
 
   // Wait for TASK_RUNNING update to be acknowledged.
   AWAIT_READY(_statusUpdateAcknowledgement);
@@ -1727,11 +1684,6 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileKillTask)
   // Now restart the slave (use same flags) with a new isolator.
   TypeParam isolator2;
 
-  Future<vector<Offer> > offers2;
-  EXPECT_CALL(sched, resourceOffers(_, _))
-    .WillOnce(FutureArg<1>(&offers2))
-    .WillRepeatedly(Return());        // Ignore subsequent offers.
-
   slave = this->StartSlave(&isolator2, flags);
   ASSERT_SOME(slave);
 
@@ -1739,11 +1691,6 @@ TYPED_TEST(SlaveRecoveryTest, ReconcileKillTask)
   AWAIT_READY(status);
   ASSERT_EQ(TASK_KILLED, status.get().state());
 
-  // Make sure all slave resources are reoffered.
-  AWAIT_READY(offers2);
-  ASSERT_EQ(Resources(offers1.get()[0].resources()),
-            Resources(offers2.get()[0].resources()));
-
   driver.stop();
   driver.join();