You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2015/03/25 01:12:48 UTC

mesos git commit: Disallowed multiple cgroups base hierarchies in tests.

Repository: mesos
Updated Branches:
  refs/heads/master a0d201b71 -> 6c6473feb


Disallowed multiple cgroups base hierarchies in tests.

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


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

Branch: refs/heads/master
Commit: 6c6473febac40be1e01c9ab005cca20ad2a48e18
Parents: a0d201b
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Mar 24 12:42:20 2015 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Mar 24 17:12:14 2015 -0700

----------------------------------------------------------------------
 src/tests/mesos.cpp | 42 +++++++++++++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/6c6473fe/src/tests/mesos.cpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.cpp b/src/tests/mesos.cpp
index 11e8833..dc2a906 100644
--- a/src/tests/mesos.cpp
+++ b/src/tests/mesos.cpp
@@ -538,27 +538,43 @@ void ContainerizerTest<slave::MesosContainerizer>::SetUp()
   EXPECT_SOME(user);
 
   if (cgroups::enabled() && user.get() == "root") {
+    // Determine the base hierarchy.
     foreach (const string& subsystem, subsystems) {
-      // Establish the base hierarchy if this is the first subsystem checked.
-      if (baseHierarchy.empty()) {
-        Result<string> hierarchy = cgroups::hierarchy(subsystem);
-        ASSERT_FALSE(hierarchy.isError());
+      Result<string> hierarchy = cgroups::hierarchy(subsystem);
+      ASSERT_FALSE(hierarchy.isError());
 
-        if (hierarchy.isNone()) {
-          baseHierarchy = TEST_CGROUPS_HIERARCHY;
+      if (hierarchy.isSome()) {
+        const string& _baseHierarchy = strings::remove(
+            hierarchy.get(),
+            subsystem,
+            strings::SUFFIX);
+
+        if (baseHierarchy.empty()) {
+          baseHierarchy = _baseHierarchy;
         } else {
-          // Strip the subsystem to get the base hierarchy.
-          baseHierarchy = strings::remove(
-              hierarchy.get(),
-              subsystem,
-              strings::SUFFIX);
+          ASSERT_EQ(baseHierarchy, _baseHierarchy)
+            << "-------------------------------------------------------------\n"
+            << "Multiple cgroups base hierarchies detected:\n"
+            << "  '" << baseHierarchy << "'\n"
+            << "  '" << _baseHierarchy << "'\n"
+            << "Mesos does not support multiple cgroups base hierarchies.\n"
+            << "Please unmount the corresponding (or all) subsystems.\n"
+            << "-------------------------------------------------------------";
         }
       }
+    }
+
+    if (baseHierarchy.empty()) {
+      baseHierarchy = TEST_CGROUPS_HIERARCHY;
+    }
+
+    // Mount the subsystem if necessary.
+    foreach (const string& subsystem, subsystems) {
+      const string& hierarchy = path::join(baseHierarchy, subsystem);
 
-      // Mount the subsystem if necessary.
-      string hierarchy = path::join(baseHierarchy, subsystem);
       Try<bool> mounted = cgroups::mounted(hierarchy, subsystem);
       ASSERT_SOME(mounted);
+
       if (!mounted.get()) {
         ASSERT_SOME(cgroups::mount(hierarchy, subsystem))
           << "-------------------------------------------------------------\n"