You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2012/12/20 19:34:26 UTC

svn commit: r1424620 - /incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp

Author: benh
Date: Thu Dec 20 18:34:26 2012
New Revision: 1424620

URL: http://svn.apache.org/viewvc?rev=1424620&view=rev
Log:
Fixed bug in cpuset.cpus parsing.

From: Benjamin Mahler <be...@gmail.com>
Review: https://reviews.apache.org/r/8238/diff/raw

Modified:
    incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp

Modified: incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp?rev=1424620&r1=1424619&r2=1424620&view=diff
==============================================================================
--- incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp (original)
+++ incubator/mesos/trunk/src/slave/cgroups_isolation_module.cpp Thu Dec 20 18:34:26 2012
@@ -356,9 +356,12 @@ void CgroupsIsolationModule::initialize(
     Try<string> cpuset = cgroups::read(hierarchy, "mesos", "cpuset.cpus");
     CHECK(cpuset.isSome())
       << "Failed to read cpuset.cpus: " << cpuset.error();
+    cpuset = strings::trim(cpuset.get());
 
     // Parse from "0-2,7,12-14" to a set(0,1,2,7,12,13,14).
-    foreach (const string& range, strings::tokenize(cpuset.get(), ",")) {
+    foreach (string range, strings::tokenize(cpuset.get(), ",")) {
+      range = strings::trim(range);
+
       if (strings::contains(range, "-")) {
         // Case startId-endId (e.g. 0-2 in 0-2,7,12-14).
         vector<string> startEnd = strings::split(range, "-");
@@ -366,8 +369,10 @@ void CgroupsIsolationModule::initialize(
           << "Failed to parse cpu range '" << range
           << "' from cpuset.cpus '" << cpuset.get() << "'";
 
-        Try<unsigned int> start = numify<unsigned int>(startEnd[0]);
-        Try<unsigned int> end = numify<unsigned int>(startEnd[1]);
+        Try<unsigned int> start =
+          numify<unsigned int>(strings::trim(startEnd[0]));
+        Try<unsigned int> end =
+          numify<unsigned int>(strings::trim(startEnd[1]));
         CHECK(start.isSome() && end.isSome())
           << "Failed to parse cpu range '" << range
           << "' from cpuset.cpus '" << cpuset.get() << "'";