Skip to content

Commit

Permalink
[SPARK-15067][YARN] YARN executors are launched with fixed perm gen size
Browse files Browse the repository at this point in the history
## 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 <[email protected]>

Closes apache#12985 from srowen/SPARK-15067.
  • Loading branch information
srowen authored and Andrew Or committed May 9, 2016
1 parent e083db2 commit 6747171
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ static void addPermGenSizeOpt(List<String> cmd) {
return;
}
for (String arg : cmd) {
if (arg.startsWith("-XX:MaxPermSize=")) {
if (arg.contains("-XX:MaxPermSize=")) {
return;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,48 @@ public void testJavaMajorVersion() {
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),
expected, parseOptionString(opts));
}

private void testInvalidOpt(String opts) {
private static void testInvalidOpt(String opts) {
try {
parseOptionString(opts);
fail("Expected exception for invalid option string.");
Expand Down

0 comments on commit 6747171

Please sign in to comment.