You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by me...@apache.org on 2016/01/13 01:20:41 UTC

mesos git commit: Removed slave checkpointing logic after deprecation cycle.

Repository: mesos
Updated Branches:
  refs/heads/master ee91ead93 -> 1d334bd92


Removed slave checkpointing logic after deprecation cycle.

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


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

Branch: refs/heads/master
Commit: 1d334bd926d92564f7b8a74bd13cec731d1027c2
Parents: ee91ead
Author: Joerg Schad <jo...@mesosphere.io>
Authored: Tue Jan 12 15:38:16 2016 -0800
Committer: Adam B <ad...@mesosphere.io>
Committed: Tue Jan 12 15:41:50 2016 -0800

----------------------------------------------------------------------
 docs/configuration.md                         | 14 ++------
 docs/slave-recovery.md                        |  5 +--
 include/mesos/mesos.proto                     |  4 +--
 src/cli/execute.cpp                           |  2 +-
 src/examples/docker_no_executor_framework.cpp |  8 +----
 src/examples/java/TestFramework.java          | 10 ++----
 src/examples/python/test_framework.py         |  7 +---
 src/internal/devolve.cpp                      |  2 +-
 src/master/allocator/mesos/hierarchical.cpp   | 21 ++---------
 src/master/allocator/mesos/hierarchical.hpp   |  2 --
 src/master/master.cpp                         | 41 ++++++----------------
 src/master/validation.cpp                     | 17 ---------
 src/slave/containerizer/containerizer.hpp     |  2 +-
 src/slave/flags.cpp                           |  5 +--
 src/slave/slave.cpp                           |  5 ---
 src/slave/state.cpp                           |  4 +--
 src/tests/master_authorization_tests.cpp      |  4 +--
 src/tests/slave_recovery_tests.cpp            | 22 ++++++------
 src/tests/slave_tests.cpp                     |  4 +--
 19 files changed, 44 insertions(+), 135 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/docs/configuration.md
----------------------------------------------------------------------
diff --git a/docs/configuration.md b/docs/configuration.md
index cbe7f5a..7e0eb95 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -1106,9 +1106,7 @@ file:///path/to/file (where file contains one of the above)</code></pre>
       Enable docker containerizer to kill orphaned containers.
       You should consider setting this to false when you launch multiple
       slaves in the same OS, to avoid one of the DockerContainerizer removing
-      docker tasks launched by other slaves. However you should also make sure
-      you enable checkpoint for the slave so the same slave id can be reused,
-      otherwise docker tasks on slave restart will not be cleaned up.
+      docker tasks launched by other slaves.
       (default: true)
     </td>
   </tr>
@@ -1442,11 +1440,7 @@ file:///path/to/file (where file contains one of the above)</code></pre>
       <p/>
       cleanup  : Kill any old live executors and exit.
       <p/>
-      Use this option when doing an incompatible slave
-      or executor upgrade!).
-      <p/>
-      NOTE: If checkpointed slave doesn't exist, no recovery is performed
-      and the slave registers with the master as a new slave.
+      Use this option when doing an incompatible slave or executor upgrade.
       (default: reconnect)
     </td>
   </tr>
@@ -1455,11 +1449,9 @@ file:///path/to/file (where file contains one of the above)</code></pre>
       --recovery_timeout=VALUE
     </td>
     <td>
-      Amount of time alloted for the slave to recover. If the slave takes
+      Amount of time allotted for the slave to recover. If the slave takes
       longer than recovery_timeout to recover, any executors that are
       waiting to reconnect to the slave will self-terminate.
-      <p/>
-      NOTE: This flag is only applicable when checkpoint is enabled.
       (default: 15mins)
     </td>
   </tr>

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/docs/slave-recovery.md
----------------------------------------------------------------------
diff --git a/docs/slave-recovery.md b/docs/slave-recovery.md
index 73b8372..acf36b9 100644
--- a/docs/slave-recovery.md
+++ b/docs/slave-recovery.md
@@ -13,7 +13,7 @@ Mesos slave could be restarted for an upgrade or due to a crash. This feature is
 
 ## How does it work?
 
-Slave recovery works by having the slave checkpoint enough information (e.g., Task Info, Executor Info, Status Updates) about the running tasks and executors to local disk. Once the slave ***and*** the framework(s) enable checkpointing, any subsequent slave restarts would recover the checkpointed information and reconnect with the executors. Note that if the host running the slave process is rebooted all the executors/tasks are killed.
+Slave recovery works by having the slave checkpoint enough information (e.g., Task Info, Executor Info, Status Updates) about the running tasks and executors to local disk. Once a framework enables checkpointing, any subsequent slave restarts would recover the checkpointed information and reconnect with the executors. Note that if the host running the slave process is rebooted all the executors/tasks are killed.
 
 > NOTE: To enable recovery the framework should explicitly request checkpointing.
 > Alternatively, a framework that doesn't want the disk i/o overhead of checkpointing can opt out of checkpointing.
@@ -60,9 +60,6 @@ Therefore, it is highly recommended to automate the process of restarting a slav
 
 As part of this feature, `FrameworkInfo` has been updated to include an optional `checkpoint` field. A framework that would like to opt in to checkpointing should set `FrameworkInfo.checkpoint=True` before registering with the master.
 
-> NOTE: Frameworks that have enabled checkpointing will only get offers from checkpointing slaves. So, before setting `checkpoint=True` on FrameworkInfo, ensure that there are slaves in your cluster that have enabled checkpointing.
-> Because, if there are no checkpointing slaves, the framework would not get any offers and hence cannot launch any tasks/executors!
-
 ## Known issues with `systemd` and POSIX isolation
 
 There is a known issue when using `systemd` to launch the `mesos-slave` while also using only `posix` isolation mechanisms that prevents tasks from recovering. The problem is that the default [KillMode](http://www.freedesktop.org/software/systemd/man/systemd.kill.html) for systemd processes is `cgroup` and hence all child processes are killed when the slave stops. Explicitly setting `KillMode` to `process` allows the executors to survive and reconnect.

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index 74e9d00..b12e0f3 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -479,8 +479,8 @@ message SlaveInfo {
   repeated Resource resources = 3;
   repeated Attribute attributes = 5;
   optional SlaveID id = 6;
-  // TODO(joerg84): Remove checkpoint field as with 0.22.0
-  // slave checkpointing is enabled for all slaves (MESOS-2317).
+  // TODO(joerg84): Remove checkpoint field after deprecation cycle starting
+  // with 0.27 (MESOS-2317).
   optional bool checkpoint = 7 [default = false];
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index a2b610f..0add775 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -105,7 +105,7 @@ public:
 
     add(&checkpoint,
         "checkpoint",
-        "Enable checkpointing for the framework (requires slave checkpointing)",
+        "Enable checkpointing for the framework",
         false);
 
     add(&docker_image,

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/examples/docker_no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/docker_no_executor_framework.cpp b/src/examples/docker_no_executor_framework.cpp
index 7b3f058..3b0ff42 100644
--- a/src/examples/docker_no_executor_framework.cpp
+++ b/src/examples/docker_no_executor_framework.cpp
@@ -179,13 +179,7 @@ int main(int argc, char** argv)
   FrameworkInfo framework;
   framework.set_user(""); // Have Mesos fill in the current user.
   framework.set_name("Docker No Executor Framework (C++)");
-
-  // TODO(vinod): Make checkpointing the default when it is default
-  // on the slave.
-  if (os::getenv("MESOS_CHECKPOINT").isSome()) {
-    cout << "Enabling checkpoint for the framework" << endl;
-    framework.set_checkpoint(true);
-  }
+  framework.set_checkpoint(true);
 
   MesosSchedulerDriver* driver;
   if (os::getenv("MESOS_AUTHENTICATE").isSome()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/examples/java/TestFramework.java
----------------------------------------------------------------------
diff --git a/src/examples/java/TestFramework.java b/src/examples/java/TestFramework.java
index cbcdeed..295e54f 100644
--- a/src/examples/java/TestFramework.java
+++ b/src/examples/java/TestFramework.java
@@ -213,14 +213,8 @@ public class TestFramework {
 
     FrameworkInfo.Builder frameworkBuilder = FrameworkInfo.newBuilder()
         .setUser("") // Have Mesos fill in the current user.
-        .setName("Test Framework (Java)");
-
-    // TODO(vinod): Make checkpointing the default when it is default
-    // on the slave.
-    if (System.getenv("MESOS_CHECKPOINT") != null) {
-      System.out.println("Enabling checkpoint for the framework");
-      frameworkBuilder.setCheckpoint(true);
-    }
+        .setName("Test Framework (Java)")
+        .setCheckpoint(true);
 
     boolean implicitAcknowledgements = true;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/examples/python/test_framework.py
----------------------------------------------------------------------
diff --git a/src/examples/python/test_framework.py b/src/examples/python/test_framework.py
index 6af6d22..5f8e470 100755
--- a/src/examples/python/test_framework.py
+++ b/src/examples/python/test_framework.py
@@ -166,12 +166,7 @@ if __name__ == "__main__":
     framework = mesos_pb2.FrameworkInfo()
     framework.user = "" # Have Mesos fill in the current user.
     framework.name = "Test Framework (Python)"
-
-    # TODO(vinod): Make checkpointing the default when it is default
-    # on the slave.
-    if os.getenv("MESOS_CHECKPOINT"):
-        print "Enabling checkpoint for the framework"
-        framework.checkpoint = True
+    framework.checkpoint = True
 
     implicitAcknowledgements = 1
     if os.getenv("MESOS_EXPLICIT_ACKNOWLEDGEMENTS"):

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/internal/devolve.cpp
----------------------------------------------------------------------
diff --git a/src/internal/devolve.cpp b/src/internal/devolve.cpp
index 6c38403..27918f1 100644
--- a/src/internal/devolve.cpp
+++ b/src/internal/devolve.cpp
@@ -66,7 +66,7 @@ SlaveInfo devolve(const v1::AgentInfo& agentInfo)
 
   // We set 'checkpoint' to 'true' since the v1::AgentInfo doesn't
   // have 'checkpoint' but all "slaves" were checkpointing by default
-  // when v1:;AgentInfo was introduced. See MESOS-2317.
+  // when v1::AgentInfo was introduced. See MESOS-2317.
   info.set_checkpoint(true);
 
   return info;

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/master/allocator/mesos/hierarchical.cpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/hierarchical.cpp b/src/master/allocator/mesos/hierarchical.cpp
index df8bcca..d541bfa 100644
--- a/src/master/allocator/mesos/hierarchical.cpp
+++ b/src/master/allocator/mesos/hierarchical.cpp
@@ -244,7 +244,6 @@ void HierarchicalAllocatorProcess::addFramework(
 
   frameworks[frameworkId] = Framework();
   frameworks[frameworkId].role = frameworkInfo.role();
-  frameworks[frameworkId].checkpoint = frameworkInfo.checkpoint();
 
   // Check if the framework desires revocable resources.
   frameworks[frameworkId].revocable = false;
@@ -374,12 +373,10 @@ void HierarchicalAllocatorProcess::updateFramework(
   CHECK(initialized);
   CHECK(frameworks.contains(frameworkId));
 
-  // TODO(jmlvanre): Once we allow frameworks to re-register with a
-  // new 'role' or 'checkpoint' flag, we need to update our internal
-  // 'frameworks' structure. See MESOS-703 for progress on allowing
-  // these fields to be updated.
+  // TODO(jmlvanre): Once we allow frameworks to re-register with a new 'role',
+  // we need to update our internal 'frameworks' structure. See MESOS-703 for
+  // progress on allowing these fields to be updated.
   CHECK_EQ(frameworks[frameworkId].role, frameworkInfo.role());
-  CHECK_EQ(frameworks[frameworkId].checkpoint, frameworkInfo.checkpoint());
 
   frameworks[frameworkId].revocable = false;
 
@@ -434,7 +431,6 @@ void HierarchicalAllocatorProcess::addSlave(
   slaves[slaveId].total = total;
   slaves[slaveId].allocated = Resources::sum(used);
   slaves[slaveId].activated = true;
-  slaves[slaveId].checkpoint = slaveInfo.checkpoint();
   slaves[slaveId].hostname = slaveInfo.hostname();
 
   // NOTE: We currently implement maintenance in the allocator to be able to
@@ -1507,17 +1503,6 @@ bool HierarchicalAllocatorProcess::isFiltered(
   CHECK(frameworks.contains(frameworkId));
   CHECK(slaves.contains(slaveId));
 
-  // Do not offer a non-checkpointing slave's resources to a checkpointing
-  // framework. This is a short term fix until the following is resolved:
-  // https://issues.apache.org/jira/browse/MESOS-444.
-  if (frameworks[frameworkId].checkpoint && !slaves[slaveId].checkpoint) {
-    VLOG(1) << "Filtered offer with " << resources
-            << " on non-checkpointing slave " << slaveId
-            << " for checkpointing framework " << frameworkId;
-
-    return true;
-  }
-
   if (frameworks[frameworkId].offerFilters.contains(slaveId)) {
     foreach (
       OfferFilter* offerFilter, frameworks[frameworkId].offerFilters[slaveId]) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/master/allocator/mesos/hierarchical.hpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/hierarchical.hpp b/src/master/allocator/mesos/hierarchical.hpp
index 86ea5a4..5f08b6e 100644
--- a/src/master/allocator/mesos/hierarchical.hpp
+++ b/src/master/allocator/mesos/hierarchical.hpp
@@ -281,7 +281,6 @@ protected:
   struct Framework
   {
     std::string role;
-    bool checkpoint;  // Whether the framework desires checkpointing.
 
     // Whether the framework suppresses offers.
     bool suppressed;
@@ -323,7 +322,6 @@ protected:
     // In this case, allocated > total.
 
     bool activated;  // Whether to offer resources.
-    bool checkpoint; // Whether slave supports checkpointing.
 
     std::string hostname;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 5268408..c122c30 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -1156,37 +1156,23 @@ void Master::exited(const UPID& pid)
     }
   }
 
-  // The semantics when a registered slave gets disconnected are as
-  // follows:
-  //
-  // 1) If the slave is not checkpointing, the slave is immediately
-  //    removed and all tasks running on it are transitioned to LOST.
-  //    No resources are recovered, because the slave is removed.
-  // 2) If the slave is checkpointing, the frameworks running on it
-  //    fall into one of the 2 cases:
-  //    2.1) Framework is checkpointing: No immediate action is taken.
-  //         The slave is given a chance to reconnect until the slave
-  //         observer times out (75s) and removes the slave (Case 1).
-  //    2.2) Framework is not-checkpointing: The slave is not removed
-  //         but the framework is removed from the slave's structs,
-  //         its tasks transitioned to LOST and resources recovered.
   if (slaves.registered.contains(pid)) {
     Slave* slave = slaves.registered.get(pid);
     CHECK_NOTNULL(slave);
 
     LOG(INFO) << "Slave " << *slave << " disconnected";
 
-    if (!slave->info.checkpoint()) {
-      // Remove the slave, if it is not checkpointing.
-      LOG(INFO) << "Removing disconnected slave " << *slave
-                << " because it is not checkpointing!";
-      removeSlave(slave, "slave is non-checkpointing and disconnected");
-      return;
-    } else if (slave->connected) {
-      // Checkpointing slaves can just be disconnected.
+    if (slave->connected) {
       disconnect(slave);
 
-      // Remove all non-checkpointing frameworks.
+      // The semantics when a registered slave gets disconnected are as
+      // follows for each framework running on that slave:
+      // 1) If the framework is checkpointing: No immediate action is taken.
+      //    The slave is given a chance to reconnect until the slave
+      //    observer times out (75s) and removes the slave (Case 1).
+      // 2) If the framework is not-checkpointing: The slave is not removed
+      //    but the framework is removed from the slave's structs,
+      //    its tasks transitioned to LOST and resources recovered.
       hashset<FrameworkID> frameworkIds =
         slave->tasks.keys() | slave->executors.keys();
 
@@ -1205,7 +1191,7 @@ void Master::exited(const UPID& pid)
       // because its PID doesn't change on restart. See MESOS-675
       // for details.
       LOG(WARNING) << "Ignoring duplicate exited() notification for "
-                   << "checkpointing slave " << *slave;
+                   << "slave " << *slave;
     }
   }
 }
@@ -4423,8 +4409,7 @@ void Master::reregisterSlave(
     // NOTE: Re-linking the slave here always rather than only when
     // the slave is disconnected can lead to multiple exited events
     // in succession for a disconnected slave. As a result, we
-    // ignore duplicate exited events for disconnected checkpointing
-    // slaves.
+    // ignore duplicate exited events for disconnected slaves.
     // See: https://issues.apache.org/jira/browse/MESOS-675
     slave->pid = from;
     link(slave->pid);
@@ -5245,10 +5230,6 @@ void Master::offer(const FrameworkID& frameworkId,
     Slave* slave = slaves.registered.get(slaveId);
     CHECK_NOTNULL(slave);
 
-    CHECK(slave->info.checkpoint() || !framework->info.checkpoint())
-        << "Resources of non checkpointing slave " << *slave
-        << " are being offered to checkpointing framework " << *framework;
-
     // This could happen if the allocator dispatched 'Master::offer' before
     // the slave was deactivated in the allocator.
     if (!slave->active) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/master/validation.cpp
----------------------------------------------------------------------
diff --git a/src/master/validation.cpp b/src/master/validation.cpp
index 6a43bce..c7cf568 100644
--- a/src/master/validation.cpp
+++ b/src/master/validation.cpp
@@ -374,22 +374,6 @@ Option<Error> validateExecutorInfo(
 }
 
 
-// Validates that a task that asks for checkpointing is not being
-// launched on a slave that has not enabled checkpointing.
-// TODO(jieyu): Remove this in favor of a CHECK, because the allocator
-// should filter these out.
-Option<Error> validateCheckpoint(Framework* framework, Slave* slave)
-{
-  if (framework->info.checkpoint() && !slave->info.checkpoint()) {
-    return Error(
-        "Task asked to be checkpointed but slave " +
-        stringify(slave->id) + " has checkpointing disabled");
-  }
-
-  return None();
-}
-
-
 // Validates that the task and the executor are using proper amount of
 // resources. For instance, the used resources by a task on a slave
 // should not exceed the total resources offered on that slave.
@@ -516,7 +500,6 @@ Option<Error> validate(
     lambda::bind(internal::validateUniqueTaskID, task, framework),
     lambda::bind(internal::validateSlaveID, task, slave),
     lambda::bind(internal::validateExecutorInfo, task, framework, slave),
-    lambda::bind(internal::validateCheckpoint, framework, slave),
     lambda::bind(internal::validateResources, task),
     lambda::bind(
         internal::validateResourceUsage, task, framework, slave, offered)

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/slave/containerizer/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.hpp b/src/slave/containerizer/containerizer.hpp
index 6964d13..08d1ed3 100644
--- a/src/slave/containerizer/containerizer.hpp
+++ b/src/slave/containerizer/containerizer.hpp
@@ -135,7 +135,7 @@ public:
  * @param directory Path to the sandbox directory.
  * @param slaveId SlaveID where this executor is being launched.
  * @param slavePid PID of the slave launching the executor.
- * @param checkpoint Whether or not the slave is checkpointing.
+ * @param checkpoint Whether or not the framework is checkpointing.
  * @param flags Flags used to launch the slave.
  *
  * @return Map of environment variables (name, value).

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/slave/flags.cpp
----------------------------------------------------------------------
diff --git a/src/slave/flags.cpp b/src/slave/flags.cpp
index 19c2996..6eea03a 100644
--- a/src/slave/flags.cpp
+++ b/src/slave/flags.cpp
@@ -460,10 +460,7 @@ mesos::internal::slave::Flags::Flags()
       "Enable docker containerizer to kill orphaned containers.\n"
       "You should consider setting this to false when you launch multiple\n"
       "slaves in the same OS, to avoid one of the DockerContainerizer \n"
-      "removing docker tasks launched by other slaves. However you should\n"
-      "also make sure to enable checkpoint for the slave so the same slave id\n"
-      "can be reused, otherwise docker tasks on slave restart will not be\n"
-      "cleaned up.\n",
+      "removing docker tasks launched by other slaves.\n",
       true);
 
   add(&Flags::docker_mesos_image,

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 90d0fec..759c8d5 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -403,11 +403,6 @@ void Slave::initialize()
   info.set_checkpoint(true);
 
   LOG(INFO) << "Slave hostname: " << info.hostname();
-  // Checkpointing of slaves is always enabled.
-  // We keep this line to be compatible with
-  // older monitoring tools.
-  // TODO(joerg84): Delete after 0.23.
-  LOG(INFO) << "Slave checkpoint: " << stringify(true);
 
   statusUpdateManager->initialize(defer(self(), &Slave::forward, lambda::_1));
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/slave/state.cpp
----------------------------------------------------------------------
diff --git a/src/slave/state.cpp b/src/slave/state.cpp
index b912c55..fae7738 100644
--- a/src/slave/state.cpp
+++ b/src/slave/state.cpp
@@ -58,8 +58,8 @@ Result<State> recover(const string& rootDir, bool strict)
   LOG(INFO) << "Recovering state from '" << rootDir << "'";
 
   // We consider the absence of 'rootDir' to mean that this is either
-  // the first time this slave was started with checkpointing enabled
-  // or this slave was started after an upgrade (--recover=cleanup).
+  // the first time this slave was started or this slave was started after
+  // an upgrade (--recover=cleanup).
   if (!os::exists(rootDir)) {
     return None();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/tests/master_authorization_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_authorization_tests.cpp b/src/tests/master_authorization_tests.cpp
index 3e14f63..29c89fb 100644
--- a/src/tests/master_authorization_tests.cpp
+++ b/src/tests/master_authorization_tests.cpp
@@ -419,8 +419,8 @@ TEST_F(MasterAuthorizationTest, SlaveDisconnected)
   Future<Nothing> deactivateSlave =
     FUTURE_DISPATCH(_, &MesosAllocatorProcess::deactivateSlave);
 
-  // Stop the checkpointing slave with explicit shutdown message
-  // so that the master does not wait for it to reconnect.
+  // Stop the slave with explicit shutdown message so that the master does not
+  // wait for it to reconnect.
   Stop(slave.get(), true);
 
   AWAIT_READY(deactivateSlave);

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/tests/slave_recovery_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp
index c0e4ff7..6683a08 100644
--- a/src/tests/slave_recovery_tests.cpp
+++ b/src/tests/slave_recovery_tests.cpp
@@ -148,7 +148,7 @@ typedef ::testing::Types<slave::MesosContainerizer> ContainerizerTypes;
 
 TYPED_TEST_CASE(SlaveRecoveryTest, ContainerizerTypes);
 
-// Enable checkpointing on the slave and ensure recovery works.
+// Ensure slave recovery works.
 TYPED_TEST(SlaveRecoveryTest, RecoverSlaveState)
 {
   Try<PID<Master> > master = this->StartMaster();
@@ -1025,7 +1025,7 @@ TYPED_TEST(SlaveRecoveryTest, CleanupExecutor)
 
 
 // This test checks whether a non-checkpointing framework is
-// properly removed, when a checkpointing slave is disconnected.
+// properly removed, when a slave is disconnected.
 TYPED_TEST(SlaveRecoveryTest, RemoveNonCheckpointingFramework)
 {
   Try<PID<Master> > master = this->StartMaster();
@@ -1826,9 +1826,9 @@ TYPED_TEST(SlaveRecoveryTest, ShutdownSlaveSIGUSR1)
 }
 
 
-// The checkpointing slave fails to do recovery and tries to register
-// as a new slave. The master should give it a new id and transition
-// all the tasks of the old slave to LOST.
+// The slave fails to do recovery and tries to register as a new slave. The
+// master should give it a new id and transition all the tasks of the old slave
+// to LOST.
 TYPED_TEST(SlaveRecoveryTest, RegisterDisconnectedSlave)
 {
   master::Flags masterFlags = this->CreateMasterFlags();
@@ -1908,10 +1908,9 @@ TYPED_TEST(SlaveRecoveryTest, RegisterDisconnectedSlave)
   EXPECT_CALL(sched, statusUpdate(_, _))
     .WillOnce(FutureArg<1>(&status2));
 
-  // Spoof the registration attempt of a checkpointing slave
-  // that failed recovery. We do this because simply restarting
-  // the slave will result in a slave with a different pid than
-  // the previous one.
+  // Spoof the registration attempt of a slave that failed recovery.
+  // We do this because simply restarting the slave will result in a slave
+  // with a different pid than the previous one.
   post(slave.get(), master.get(), registerSlaveMessage.get());
 
   // Scheduler should get a TASK_LOST message.
@@ -1940,9 +1939,8 @@ TYPED_TEST(SlaveRecoveryTest, RegisterDisconnectedSlave)
 }
 
 
-// This test verifies that a KillTask message received by the
-// master when a checkpointing slave is disconnected is properly
-// reconciled when the slave reregisters.
+// This test verifies that a KillTask message received by the master when a
+// slave is disconnected is properly reconciled when the slave reregisters.
 TYPED_TEST(SlaveRecoveryTest, ReconcileKillTask)
 {
   Try<PID<Master> > master = this->StartMaster();

http://git-wip-us.apache.org/repos/asf/mesos/blob/1d334bd9/src/tests/slave_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
index e4fb490..eb47b53 100644
--- a/src/tests/slave_tests.cpp
+++ b/src/tests/slave_tests.cpp
@@ -130,8 +130,8 @@ TEST_F(SlaveTest, Shutdown)
   EXPECT_CALL(sched, slaveLost(&driver, offers.get()[0].slave_id()))
     .WillOnce(FutureSatisfy(&slaveLost));
 
-  // Stop the checkpointing slave with explicit shutdown message
-  // so that the slave unregisters.
+  // Stop the slave with explicit shutdown message so that the slave
+  // unregisters.
   Stop(slave.get(), true);
 
   AWAIT_READY(offerRescinded);