Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/CGroupsHandlerImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/CGroupsHandlerImpl.java (revision 5faa949b782be48ef400d2eb1695f420455de764) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/CGroupsHandlerImpl.java (revision b24a4f56f880a3fc63baedb0dc68296d36076adc) @@ -236,7 +236,12 @@ Map> entries) { for (Map.Entry> e : entries.entrySet()) { if (e.getValue().contains(controller)) { - return e.getKey(); + if (new File(e.getKey()).canRead()) { + return e.getKey(); + } else { + LOG.warn(String.format( + "Skipping inaccessible cgroup mount point %s", e.getKey())); + } } } Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/TestCGroupsHandlerImpl.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/TestCGroupsHandlerImpl.java (revision 5faa949b782be48ef400d2eb1695f420455de764) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/TestCGroupsHandlerImpl.java (revision f76df815d6a64b749c4e0b4c65be94c61287ce43) @@ -252,6 +252,10 @@ String cpuMtabContent = "none " + parentDir.getAbsolutePath() + "/cpu cgroup rw,relatime,cpu 0 0\n"; + // Mark an empty directory called 'cp' cgroup. It is processed before 'cpu' + String cpuMtabContentMissing = + "none " + parentDir.getAbsolutePath() + + "/cp cgroup rw,relatime,cpu 0 0\n"; String blkioMtabContent = "none " + parentDir.getAbsolutePath() + "/blkio cgroup rw,relatime,blkio 0 0\n"; @@ -264,6 +268,7 @@ } } FileWriter mtabWriter = new FileWriter(mockMtab.getAbsoluteFile()); + mtabWriter.write(cpuMtabContentMissing); mtabWriter.write(cpuMtabContent); mtabWriter.write(blkioMtabContent); mtabWriter.close();