Skip to content
Snippets Groups Projects
Commit 6747171e authored by Sean Owen's avatar Sean Owen Committed by Andrew Or
Browse files

[SPARK-15067][YARN] YARN executors are launched with fixed perm gen size

## What changes were proposed in this pull request?

Look for MaxPermSize arguments anywhere in an arg, to account for quoted args. See JIRA for discussion.

## How was this patch tested?

Jenkins tests

Author: Sean Owen <sowen@cloudera.com>

Closes #12985 from srowen/SPARK-15067.
parent e083db2e
No related branches found
No related tags found
No related merge requests found
...@@ -325,7 +325,7 @@ class CommandBuilderUtils { ...@@ -325,7 +325,7 @@ class CommandBuilderUtils {
return; return;
} }
for (String arg : cmd) { for (String arg : cmd) {
if (arg.startsWith("-XX:MaxPermSize=")) { if (arg.contains("-XX:MaxPermSize=")) {
return; return;
} }
} }
......
...@@ -99,12 +99,48 @@ public class CommandBuilderUtilsSuite { ...@@ -99,12 +99,48 @@ public class CommandBuilderUtilsSuite {
assertEquals(10, javaMajorVersion("10")); assertEquals(10, javaMajorVersion("10"));
} }
private void testOpt(String opts, List<String> expected) { @Test
public void testAddPermGenSizeOpt() {
List<String> cmd = new ArrayList<>();
if (javaMajorVersion(System.getProperty("java.version")) > 7) {
// Does nothing in Java 8
addPermGenSizeOpt(cmd);
assertEquals(0, cmd.size());
cmd.clear();
} else {
addPermGenSizeOpt(cmd);
assertEquals(1, cmd.size());
assertTrue(cmd.get(0).startsWith("-XX:MaxPermSize="));
cmd.clear();
cmd.add("foo");
addPermGenSizeOpt(cmd);
assertEquals(2, cmd.size());
assertTrue(cmd.get(1).startsWith("-XX:MaxPermSize="));
cmd.clear();
cmd.add("-XX:MaxPermSize=512m");
addPermGenSizeOpt(cmd);
assertEquals(1, cmd.size());
assertEquals("-XX:MaxPermSize=512m", cmd.get(0));
cmd.clear();
cmd.add("'-XX:MaxPermSize=512m'");
addPermGenSizeOpt(cmd);
assertEquals(1, cmd.size());
assertEquals("'-XX:MaxPermSize=512m'", cmd.get(0));
cmd.clear();
}
}
private static void testOpt(String opts, List<String> expected) {
assertEquals(String.format("test string failed to parse: [[ %s ]]", opts), assertEquals(String.format("test string failed to parse: [[ %s ]]", opts),
expected, parseOptionString(opts)); expected, parseOptionString(opts));
} }
private void testInvalidOpt(String opts) { private static void testInvalidOpt(String opts) {
try { try {
parseOptionString(opts); parseOptionString(opts);
fail("Expected exception for invalid option string."); fail("Expected exception for invalid option string.");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment