From 4f3ca0396a810f54f7fd0489a224c1bb13143aa4 Mon Sep 17 00:00:00 2001 From: Haibo Chen Date: Wed, 26 Apr 2017 11:43:27 -0700 Subject: [PATCH] YARN-6510. Fix profs stat file warning caused by process names that includes parenthesis. (Wilfred Spiegelenburg via Haibo Chen) --- .../apache/hadoop/yarn/util/ProcfsBasedProcessTree.java | 2 +- .../hadoop/yarn/util/TestProcfsBasedProcessTree.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ProcfsBasedProcessTree.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ProcfsBasedProcessTree.java index a08b90e6085..d54611e8175 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ProcfsBasedProcessTree.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ProcfsBasedProcessTree.java @@ -58,7 +58,7 @@ public class ProcfsBasedProcessTree extends ResourceCalculatorProcessTree { private static final String PROCFS = "/proc/"; private static final Pattern PROCFS_STAT_FILE_FORMAT = Pattern.compile( - "^([\\d-]+)\\s\\(([^)]+)\\)\\s[^\\s]\\s([\\d-]+)\\s([\\d-]+)\\s" + + "^([\\d-]+)\\s\\((.*)\\)\\s[^\\s]\\s([\\d-]+)\\s([\\d-]+)\\s" + "([\\d-]+)\\s([\\d-]+\\s){7}(\\d+)\\s(\\d+)\\s([\\d-]+\\s){7}(\\d+)\\s" + "(\\d+)(\\s[\\d-]+){15}"); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java index c5fd40c0ca8..aad513a9ea5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java @@ -419,7 +419,7 @@ public class TestProcfsBasedProcessTree { new ProcessStatInfo(new String[]{"200", "process two", "100", "100", "100", "200000", "200", "2000", "400"}); procInfos[2] = - new ProcessStatInfo(new String[]{"300", "proc3", "200", "100", + new ProcessStatInfo(new String[]{"300", "proc(3)", "200", "100", "100", "300000", "300", "3000", "600"}); procInfos[3] = new ProcessStatInfo(new String[]{"400", "proc4", "1", "400", "400", @@ -555,7 +555,7 @@ public class TestProcfsBasedProcessTree { new ProcessStatInfo(new String[]{"200", "process two", "100", "100", "100", "200000", "200"}); procInfos[2] = - new ProcessStatInfo(new String[]{"300", "proc3", "1", "300", "300", + new ProcessStatInfo(new String[]{"300", "proc(3)", "1", "300", "300", "300000", "300"}); procInfos[3] = new ProcessStatInfo(new String[]{"400", "proc4", "100", "100", @@ -748,7 +748,7 @@ public class TestProcfsBasedProcessTree { new ProcessStatInfo(new String[]{"200", "process two", "100", "100", "100", "200000", "200", "2000", "400"}); procInfos[2] = - new ProcessStatInfo(new String[]{"300", "proc3", "200", "100", + new ProcessStatInfo(new String[]{"300", "proc(3)", "200", "100", "100", "300000", "300", "3000", "600"}); procInfos[3] = new ProcessStatInfo(new String[]{"400", "proc4", "200", "100", @@ -771,7 +771,7 @@ public class TestProcfsBasedProcessTree { String[] cmdLines = new String[numProcesses]; cmdLines[0] = "proc1 arg1 arg2"; cmdLines[1] = "process two arg3 arg4"; - cmdLines[2] = "proc3 arg5 arg6"; + cmdLines[2] = "proc(3) arg5 arg6"; cmdLines[3] = "proc4 arg7 arg8"; cmdLines[4] = "proc5 arg9 arg10"; cmdLines[5] = "proc6 arg11 arg12";