Checked for mounted 'cpu' cgroups subsystem in Docker::validate.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0bf53b48 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0bf53b48 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0bf53b48 Branch: refs/heads/master Commit: 0bf53b48d22571311c55c699799f99f375c601d6 Parents: 19781ef Author: Benjamin Hindman <[email protected]> Authored: Wed Jul 9 15:25:27 2014 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Mon Aug 4 15:08:17 2014 -0700 ---------------------------------------------------------------------- src/docker/docker.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/0bf53b48/src/docker/docker.cpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp index 8985f55..1142ef3 100644 --- a/src/docker/docker.cpp +++ b/src/docker/docker.cpp @@ -31,6 +31,8 @@ #include "docker/docker.hpp" +#include "linux/cgroups.hpp" + #include "slave/containerizer/isolators/cgroups/cpushare.hpp" #include "slave/containerizer/isolators/cgroups/mem.hpp" @@ -46,6 +48,16 @@ using std::vector; Try<Nothing> Docker::validate(const Docker &docker) { + // Make sure that cgroups are mounted, and at least the 'cpu' + // subsystem is attached. + Result<string> hierarchy = cgroups::hierarchy("cpu"); + + if (hierarchy.isNone()) { + return Error("Failed to find a mounted cgroups hierarchy " + "for the 'cpu' subsystem, you probably need " + "to mount cgroups manually!"); + } + Future<std::string> info = docker.info(); if (!info.await(Seconds(3))) {
