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"