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 2014/08/05 00:09:59 UTC

[38/43] git commit: Checked for mounted 'cpu' cgroups subsystem in Docker::validate.

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 <be...@gmail.com>
Authored: Wed Jul 9 15:25:27 2014 -0700
Committer: Benjamin Hindman <be...@gmail.com>
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))) {