You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2015/10/26 23:47:14 UTC

mesos git commit: Fixed quotation of interpolated variables in log messages.

Repository: mesos
Updated Branches:
  refs/heads/master 64c37b493 -> d69e786e3


Fixed quotation of interpolated variables in log messages.

Specifically, we should always quote executor IDs (because they are
user-supplied and might contain whitespace), but we don't need to quote
framework IDs. There's a bunch more work we could do here (e.g.,
escaping punctuation), but this is a start.

Also fix a few style issues with usage of "<<" operators.

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


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

Branch: refs/heads/master
Commit: d69e786e3c0117f9ef85e97d65147ea5d34e2d57
Parents: 64c37b4
Author: Neil Conway <ne...@gmail.com>
Authored: Mon Oct 26 17:13:55 2015 -0500
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Mon Oct 26 17:44:02 2015 -0500

----------------------------------------------------------------------
 src/exec/exec.cpp                               |   2 +-
 src/master/master.cpp                           |  20 +--
 src/master/master.hpp                           |  14 +--
 .../mesos/isolators/network/port_mapping.cpp    |  10 +-
 src/slave/slave.cpp                             | 121 ++++++++++---------
 src/slave/state.cpp                             |   4 +-
 src/tests/containerizer.cpp                     |   8 +-
 7 files changed, 91 insertions(+), 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/exec/exec.cpp
----------------------------------------------------------------------
diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp
index c99dc07..76599bf 100644
--- a/src/exec/exec.cpp
+++ b/src/exec/exec.cpp
@@ -310,7 +310,7 @@ protected:
   {
     if (aborted.load()) {
       VLOG(1) << "Ignoring kill task message for task " << taskId
-              <<" because the driver is aborted!";
+              << " because the driver is aborted!";
       return;
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 0981428..39ce9bc 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -2746,8 +2746,8 @@ Resources Master::addTask(
     // TODO(benh): Refactor this code into Slave::addTask.
     if (!slave->hasExecutor(framework->id(), task.executor().executor_id())) {
       CHECK(!framework->hasExecutor(slave->id, task.executor().executor_id()))
-        << "Executor " << task.executor().executor_id()
-        << " known to the framework " << *framework
+        << "Executor '" << task.executor().executor_id()
+        << "' known to the framework " << *framework
         << " but unknown to the slave " << *slave;
 
       slave->addExecutor(framework->id(), task.executor());
@@ -3635,8 +3635,8 @@ void Master::schedulerMessage(
 
   if (framework->pid != from) {
     LOG(WARNING)
-      << "Ignoring framework message for executor " << executorId
-      << " of framework " << *framework
+      << "Ignoring framework message for executor '" << executorId
+      << "' of framework " << *framework
       << " because it is not expected from " << from;
     metrics->invalid_framework_to_executor_messages++;
     return;
@@ -4502,8 +4502,8 @@ void Master::exitedExecutor(
     return;
   }
 
-  LOG(INFO) << "Executor " << executorId
-            << " of framework " << frameworkId
+  LOG(INFO) << "Executor '" << executorId
+            << "' of framework " << frameworkId
             << " on slave " << *slave << ": "
             << WSTRINGIFY(status);
 
@@ -5295,8 +5295,8 @@ void Master::reconcile(
     // in the scheduler driver.
     if (!executor.has_framework_id()) {
       LOG(ERROR) << "Slave " << *slave
-                 << " re-registered with executor " << executor.executor_id()
-                 << " without setting the framework id";
+                 << " re-registered with executor '" << executor.executor_id()
+                 << "' without setting the framework id";
       continue;
     }
     slaveExecutors.put(executor.framework_id(), executor.executor_id());
@@ -5311,8 +5311,8 @@ void Master::reconcile(
         // TODO(bmahler): Reconcile executors correctly between the
         // master and the slave, see:
         // MESOS-1466, MESOS-1800, and MESOS-1720.
-        LOG(WARNING) << "Executor " << executorId
-                     << " of framework " << frameworkId
+        LOG(WARNING) << "Executor '" << executorId
+                     << "' of framework " << frameworkId
                      << " possibly unknown to the slave " << *slave;
 
         removeExecutor(slave, frameworkId, executorId);

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 3aa7017..b76d301 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -263,8 +263,8 @@ struct Slave
                    const ExecutorInfo& executorInfo)
   {
     CHECK(!hasExecutor(frameworkId, executorInfo.executor_id()))
-      << "Duplicate executor " << executorInfo.executor_id()
-      << " of framework " << frameworkId;
+      << "Duplicate executor '" << executorInfo.executor_id()
+      << "' of framework " << frameworkId;
 
     executors[frameworkId][executorInfo.executor_id()] = executorInfo;
     usedResources[frameworkId] += executorInfo.resources();
@@ -274,7 +274,7 @@ struct Slave
                       const ExecutorID& executorId)
   {
     CHECK(hasExecutor(frameworkId, executorId))
-      << "Unknown executor " << executorId << " of framework " << frameworkId;
+      << "Unknown executor '" << executorId << "' of framework " << frameworkId;
 
     usedResources[frameworkId] -=
       executors[frameworkId][executorId].resources();
@@ -1622,8 +1622,8 @@ struct Framework
                    const ExecutorInfo& executorInfo)
   {
     CHECK(!hasExecutor(slaveId, executorInfo.executor_id()))
-      << "Duplicate executor " << executorInfo.executor_id()
-      << " on slave " << slaveId;
+      << "Duplicate executor '" << executorInfo.executor_id()
+      << "' on slave " << slaveId;
 
     executors[slaveId][executorInfo.executor_id()] = executorInfo;
     totalUsedResources += executorInfo.resources();
@@ -1634,8 +1634,8 @@ struct Framework
                       const ExecutorID& executorId)
   {
     CHECK(hasExecutor(slaveId, executorId))
-      << "Unknown executor " << executorId
-      << " of framework " << id()
+      << "Unknown executor '" << executorId
+      << "' of framework " << id()
       << " of slave " << slaveId;
 
     totalUsedResources -= executors[slaveId][executorId].resources();

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
index 565f9cc..1911ba6 100644
--- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
@@ -2103,8 +2103,8 @@ Future<Option<ContainerPrepareInfo>> PortMappingIsolatorProcess::prepare(
   if (resources.ephemeral_ports().isSome()) {
     LOG(WARNING) << "Ignoring the specified ephemeral_ports '"
                  << resources.ephemeral_ports().get()
-                 << "' for container" << containerId
-                 << " of executor " << executorInfo.executor_id();
+                 << "' for container " << containerId
+                 << " of executor '" << executorInfo.executor_id() << "'";
   }
 
   // Allocate the ephemeral ports used by this container.
@@ -2118,8 +2118,8 @@ Future<Option<ContainerPrepareInfo>> PortMappingIsolatorProcess::prepare(
 
   LOG(INFO) << "Using non-ephemeral ports " << nonEphemeralPorts
             << " and ephemeral ports " << ephemeralPorts.get()
-            << " for container " << containerId << " of executor "
-            << executorInfo.executor_id();
+            << " for container " << containerId << " of executor '"
+            << executorInfo.executor_id() << "'";
 
   ContainerPrepareInfo prepareInfo;
   prepareInfo.add_commands()->set_value(scripts(infos[containerId]));
@@ -3530,7 +3530,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
 
   // Configure lo and eth0.
   script << "ip link set " << lo << " address " << hostMAC
-         << " mtu "<< hostEth0MTU << " up\n";
+         << " mtu " << hostEth0MTU << " up\n";
 
   script << "ip link set " << eth0 << " address " << hostMAC << " up\n";
   script << "ip addr add " << hostIPNetwork  << " dev " << eth0 << "\n";

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 837e403..5f9b52b 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -1215,8 +1215,8 @@ void Slave::doReliableRegistration(Duration maxBackoff)
 
       foreach (const Owned<Executor>& executor,
                completedFramework->completedExecutors) {
-        VLOG(2) << "Reregistering completed executor " << executor->id
-                << " with " << executor->terminatedTasks.size()
+        VLOG(2) << "Reregistering completed executor '" << executor->id
+                << "' with " << executor->terminatedTasks.size()
                 << " terminated tasks, " << executor->completedTasks.size()
                 << " completed tasks";
 
@@ -1528,8 +1528,8 @@ void Slave::_runTask(
     foreach (const Resource& resource, checkpointedExecutorResources) {
       if (!checkpointedResources.contains(resource)) {
         LOG(WARNING) << "Unknown checkpointed resource " << resource
-                     << " for executor " << task.executor().executor_id()
-                     << " of framework " << frameworkId;
+                     << " for executor '" << task.executor().executor_id()
+                     << "' of framework " << frameworkId;
 
         const StatusUpdate update = protobuf::createStatusUpdate(
             frameworkId,
@@ -1618,7 +1618,7 @@ void Slave::_runTask(
 
       // Queue task if the executor has not yet registered.
       LOG(INFO) << "Queuing task '" << task.task_id()
-                  << "' for executor " << *executor;
+                << "' for executor '" << *executor << "'";
 
       executor->queuedTasks[task.task_id()] = task;
       break;
@@ -1631,7 +1631,7 @@ void Slave::_runTask(
       // Queue task until the containerizer is updated with new
       // resource limits (MESOS-998).
       LOG(INFO) << "Queuing task '" << task.task_id()
-                  << "' for executor " << *executor;
+                << "' for executor '" << *executor << "'";
 
       executor->queuedTasks[task.task_id()] = task;
 
@@ -1783,7 +1783,7 @@ void Slave::runTasks(
     executor->addTask(task);
 
     LOG(INFO) << "Sending queued task '" << task.task_id()
-              << "' to executor " << *executor;
+              << "' to executor '" << *executor << "'";
 
     RunTaskMessage message;
     message.mutable_framework()->MergeFrom(framework->info);
@@ -1923,8 +1923,8 @@ void Slave::killTask(
       // task within a timeout.
       if (executor->queuedTasks.empty()) {
         CHECK(executor->launchedTasks.empty())
-            << " Unregistered executor " << executor->id
-            << " has launched tasks";
+            << " Unregistered executor '" << executor->id
+            << "' has launched tasks";
 
         LOG(WARNING) << "Killing the unregistered executor " << *executor
                      << " because it has no tasks";
@@ -1971,8 +1971,8 @@ void Slave::killTask(
       break;
     }
     default:
-      LOG(FATAL) << "Executor " << *executor
-                 << " is in unexpected state " << executor->state;
+      LOG(FATAL) << "Executor '" << *executor
+                 << "' is in unexpected state " << executor->state;
       break;
   }
 }
@@ -2075,7 +2075,7 @@ void Slave::schedulerMessage(
     << state;
 
   if (state != RUNNING) {
-    LOG(WARNING) << "Dropping message from framework "<< frameworkId
+    LOG(WARNING) << "Dropping message from framework " << frameworkId
                  << " because the slave is in " << state << " state";
     metrics.invalid_framework_messages++;
     return;
@@ -2084,7 +2084,7 @@ void Slave::schedulerMessage(
 
   Framework* framework = getFramework(frameworkId);
   if (framework == NULL) {
-    LOG(WARNING) << "Dropping message from framework "<< frameworkId
+    LOG(WARNING) << "Dropping message from framework " << frameworkId
                  << " because framework does not exist";
     metrics.invalid_framework_messages++;
     return;
@@ -2095,7 +2095,7 @@ void Slave::schedulerMessage(
     << framework->state;
 
   if (framework->state == Framework::TERMINATING) {
-    LOG(WARNING) << "Dropping message from framework "<< frameworkId
+    LOG(WARNING) << "Dropping message from framework " << frameworkId
                  << " because framework is terminating";
     metrics.invalid_framework_messages++;
     return;
@@ -2132,8 +2132,8 @@ void Slave::schedulerMessage(
       break;
     }
     default:
-      LOG(FATAL) << "Executor " << *executor
-                 << " is in unexpected state " << executor->state;
+      LOG(FATAL) << "Executor '" << *executor
+                 << "' is in unexpected state " << executor->state;
       break;
   }
 }
@@ -2148,7 +2148,7 @@ void Slave::updateFramework(
     << state;
 
   if (state != RUNNING) {
-    LOG(WARNING) << "Dropping updateFramework message for "<< frameworkId
+    LOG(WARNING) << "Dropping updateFramework message for " << frameworkId
                  << " because the slave is in " << state << " state";
     metrics.invalid_framework_messages++;
     return;
@@ -2420,7 +2420,7 @@ void Slave::registerExecutor(
 
   Framework* framework = getFramework(frameworkId);
   if (framework == NULL) {
-    LOG(WARNING) << " Shutting down executor '" << executorId
+    LOG(WARNING) << "Shutting down executor '" << executorId
                  << "' as the framework " << frameworkId
                  << " does not exist";
 
@@ -2433,7 +2433,7 @@ void Slave::registerExecutor(
     << framework->state;
 
   if (framework->state == Framework::TERMINATING) {
-    LOG(WARNING) << " Shutting down executor '" << executorId
+    LOG(WARNING) << "Shutting down executor '" << executorId
                  << "' as the framework " << frameworkId
                  << " is terminating";
 
@@ -2542,8 +2542,8 @@ void Slave::reregisterExecutor(
     return;
   }
 
-  LOG(INFO) << "Re-registering executor " << executorId
-            << " of framework " << frameworkId;
+  LOG(INFO) << "Re-registering executor '" << executorId
+            << "' of framework " << frameworkId;
 
   CHECK(frameworks.contains(frameworkId))
     << "Unknown framework " << frameworkId;
@@ -2555,7 +2555,7 @@ void Slave::reregisterExecutor(
     << framework->state;
 
   if (framework->state == Framework::TERMINATING) {
-    LOG(WARNING) << " Shutting down executor '" << executorId
+    LOG(WARNING) << "Shutting down executor '" << executorId
                  << "' as the framework " << frameworkId
                  << " is terminating";
 
@@ -2628,8 +2628,8 @@ void Slave::reregisterExecutor(
         if (task->state() == TASK_STAGING &&
             !unackedTasks.contains(task->task_id())) {
           LOG(INFO) << "Transitioning STAGED task " << task->task_id()
-                    << " to LOST because it is unknown to the executor "
-                    << executorId;
+                    << " to LOST because it is unknown to the executor '"
+                    << executorId << "'";
 
           const StatusUpdate update = protobuf::createStatusUpdate(
               frameworkId,
@@ -2888,8 +2888,8 @@ void Slave::statusUpdate(StatusUpdate update, const UPID& pid)
       executor->pid.isSome() &&
       executor->pid.get() != pid) {
     LOG(WARNING) << "Received status update " << update << " from " << pid
-                 << " on behalf of a different executor " << executor->id
-                 << " (" << executor->pid.get() << ")";
+                 << " on behalf of a different executor '" << executor->id
+                 << "' (" << executor->pid.get() << ")";
   }
 
   metrics.valid_status_updates++;
@@ -2947,8 +2947,8 @@ void Slave::_statusUpdate(
 {
   if (future.isSome() && !future->isReady()) {
     LOG(ERROR) << "Failed to update resources for container " << containerId
-               << " of executor " << executorId
-               << " running task " << update.status().task_id()
+               << " of executor '" << executorId
+               << "' running task " << update.status().task_id()
                << " on status update for terminal task, destroying container: "
                << (future->isFailed() ? future->failure() : "discarded");
 
@@ -3095,8 +3095,8 @@ void Slave::executorMessage(
     << state;
 
   if (state != RUNNING) {
-    LOG(WARNING) << "Dropping framework message from executor "
-                 << executorId << " to framework " << frameworkId
+    LOG(WARNING) << "Dropping framework message from executor '"
+                 << executorId << "' to framework " << frameworkId
                  << " because the slave is in " << state << " state";
     metrics.invalid_framework_messages++;
     return;
@@ -3104,8 +3104,8 @@ void Slave::executorMessage(
 
   Framework* framework = getFramework(frameworkId);
   if (framework == NULL) {
-    LOG(WARNING) << "Cannot send framework message from executor "
-                 << executorId << " to framework " << frameworkId
+    LOG(WARNING) << "Cannot send framework message from executor '"
+                 << executorId << "' to framework " << frameworkId
                  << " because framework does not exist";
     metrics.invalid_framework_messages++;
     return;
@@ -3116,8 +3116,8 @@ void Slave::executorMessage(
     << framework->state;
 
   if (framework->state == Framework::TERMINATING) {
-    LOG(WARNING) << "Ignoring framework message from executor "
-                 << executorId << " to framework " << frameworkId
+    LOG(WARNING) << "Ignoring framework message from executor '"
+                 << executorId << "' to framework " << frameworkId
                  << " because framework is terminating";
     metrics.invalid_framework_messages++;
     return;
@@ -3365,8 +3365,8 @@ void Slave::executorLaunched(
   if (!future.isReady()) {
     LOG(ERROR) << "Container '" << containerId
                << "' for executor '" << executorId
-               << "' of framework '" << frameworkId
-               << "' failed to start: "
+               << "' of framework " << frameworkId
+               << " failed to start: "
                << (future.isFailed() ? future.failure() : " future discarded");
 
     ++metrics.container_launch_errors;
@@ -3391,10 +3391,10 @@ void Slave::executorLaunched(
   } else if (!future.get()) {
     LOG(ERROR) << "Container '" << containerId
                << "' for executor '" << executorId
-               << "' of framework '" << frameworkId
-               << "' failed to start: None of the enabled containerizers ("
+               << "' of framework " << frameworkId
+               << " failed to start: None of the enabled containerizers ("
                << flags.containerizers << ") could create a container for the "
-               << "provided TaskInfo/ExecutorInfo message.";
+               << "provided TaskInfo/ExecutorInfo message";
 
     ++metrics.container_launch_errors;
     return;
@@ -3414,8 +3414,8 @@ void Slave::executorLaunched(
 
   if (framework->state == Framework::TERMINATING) {
     LOG(WARNING) << "Killing executor '" << executorId
-                 << "' of framework '" << frameworkId
-                 << "' because the framework is terminating";
+                 << "' of framework " << frameworkId
+                 << " because the framework is terminating";
     containerizer->destroy(containerId);
     return;
   }
@@ -3423,15 +3423,16 @@ void Slave::executorLaunched(
   Executor* executor = framework->getExecutor(executorId);
   if (executor == NULL) {
     LOG(WARNING) << "Killing unknown executor '" << executorId
-                 << "' of framework '" << frameworkId << "'";
+                 << "' of framework " << frameworkId;
     containerizer->destroy(containerId);
     return;
   }
 
   switch (executor->state) {
     case Executor::TERMINATING:
-      LOG(WARNING) << "Killing executor " << *executor
+      LOG(WARNING) << "Killing executor '" << *executor
                    << "' because the executor is terminating";
+
       containerizer->destroy(containerId);
       break;
     case Executor::REGISTERING:
@@ -3439,8 +3440,9 @@ void Slave::executorLaunched(
       break;
     case Executor::TERMINATED:
     default:
-      LOG(FATAL) << "Executor " << *executor
+      LOG(FATAL) << "Executor '" << *executor
                  << "' is in an unexpected state " << executor->state;
+
       break;
   }
 }
@@ -3459,8 +3461,8 @@ void Slave::executorTerminated(
   // this occurs.
   if (!termination.isReady()) {
     LOG(ERROR) << "Termination of executor '" << executorId
-               << "' of framework '" << frameworkId
-               << "' failed: "
+               << "' of framework " << frameworkId
+               << " failed: "
                << (termination.isFailed()
                    ? termination.failure()
                    : "discarded");
@@ -3725,7 +3727,7 @@ void Slave::shutdownExecutor(
   }
 
   LOG(INFO) << "Asked to shut down executor '" << executorId
-            << "' of framework "<< frameworkId << " by " << from;
+            << "' of framework " << frameworkId << " by " << from;
 
   CHECK(state == RECOVERING || state == DISCONNECTED ||
         state == RUNNING || state == TERMINATING)
@@ -3908,8 +3910,8 @@ void Slave::registerExecutorTimeout(
       // Ignore the registration timeout.
       break;
     case Executor::REGISTERING: {
-      LOG(INFO) << "Terminating executor " << *executor
-                << " because it did not register within "
+      LOG(INFO) << "Terminating executor '" << *executor
+                << "' because it did not register within "
                 << flags.executor_registration_timeout;
 
       // Immediately kill the executor.
@@ -4091,17 +4093,18 @@ Future<Nothing> Slave::_recover()
         // Note that recovered http executors are marked with
         // http.isNone and pid.isNone (see comments in the header).
         if (executor->pid.isSome() && executor->pid.get()) {
-          LOG(INFO) << "Sending reconnect request to executor " << *executor;
+          LOG(INFO)
+            << "Sending reconnect request to executor '" << *executor << "'";
 
           ReconnectExecutorMessage message;
           message.mutable_slave_id()->MergeFrom(info.id());
           send(executor->pid.get(), message);
         } else if (executor->pid.isNone()) {
-          LOG(INFO) << "Waiting for executor " << *executor
-                    << " to subscribe";
+          LOG(INFO) << "Waiting for executor '" << *executor
+                    << "' to subscribe";
         } else {
-          LOG(INFO) << "Unable to reconnect to executor " << *executor
-                    << " because no pid or http checkpoint file was found";
+          LOG(INFO) << "Unable to reconnect to executor '" << *executor
+                    << "' because no pid or http checkpoint file was found";
         }
       } else {
         // For PID-based executors, we ask the executor to shut
@@ -4110,11 +4113,11 @@ Future<Nothing> Slave::_recover()
         // when the executor subscribes.
         if ((executor->pid.isSome() && executor->pid.get()) ||
             executor->pid.isNone()) {
-          LOG(INFO) << "Sending shutdown to executor " << *executor;
+          LOG(INFO) << "Sending shutdown to executor '" << *executor << "'";
           _shutdownExecutor(framework, executor);
         } else {
-          LOG(INFO) << "Killing executor " << *executor
-                    << " because no pid or http checkpoint file was found";
+          LOG(INFO) << "Killing executor '" << *executor
+                    << "' because no pid or http checkpoint file was found";
 
           containerizer->destroy(executor->containerId);
         }
@@ -4492,8 +4495,8 @@ void Slave::_qosCorrections(const Future<list<QoSCorrection>>& future)
                        << executor->state << " state";
           break;
         default:
-          LOG(FATAL) << "Executor " << *executor
-                     << " is in unexpected state " << executor->state;
+          LOG(FATAL) << "Executor '" << *executor
+                     << "' is in unexpected state " << executor->state;
           break;
       }
     } else {

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/slave/state.cpp
----------------------------------------------------------------------
diff --git a/src/slave/state.cpp b/src/slave/state.cpp
index 81c4b96..d14159f 100644
--- a/src/slave/state.cpp
+++ b/src/slave/state.cpp
@@ -287,8 +287,8 @@ Try<FrameworkState> FrameworkState::recover(
       ExecutorState::recover(rootDir, slaveId, frameworkId, executorId, strict);
 
     if (executor.isError()) {
-      return Error("Failed to recover executor " + executorId.value() +
-                   ": " + executor.error());
+      return Error("Failed to recover executor '" + executorId.value() +
+                   "': " + executor.error());
     }
 
     state.executors[executorId] = executor.get();

http://git-wip-us.apache.org/repos/asf/mesos/blob/d69e786e/src/tests/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.cpp b/src/tests/containerizer.cpp
index 451c7be..e3cf10b 100644
--- a/src/tests/containerizer.cpp
+++ b/src/tests/containerizer.cpp
@@ -88,13 +88,13 @@ Future<bool> TestContainerizer::_launch(
     bool checkpoint)
 {
   CHECK(!drivers.contains(containerId))
-    << "Failed to launch executor " << executorInfo.executor_id()
-    << " of framework " << executorInfo.framework_id()
+    << "Failed to launch executor '" << executorInfo.executor_id()
+    << "' of framework " << executorInfo.framework_id()
     << " because it is already launched";
 
   CHECK(executors.contains(executorInfo.executor_id()))
-    << "Failed to launch executor " << executorInfo.executor_id()
-    << " of framework " << executorInfo.framework_id()
+    << "Failed to launch executor '" << executorInfo.executor_id()
+    << "' of framework " << executorInfo.framework_id()
     << " because it is unknown to the containerizer";
 
   // Store mapping from (frameworkId, executorId) -> containerId to facilitate