[
https://issues.apache.org/jira/browse/HADOOP-4953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12660757#action_12660757
]
Steve Loughran commented on HADOOP-4953:
----------------------------------------
There's no checking for limits in the code; the configuration is got, expanded,
@taskid@ replaced and then split on spaces.
If something is happening here it may be related to command line length rather
than java opt parsing. A quick trace shows that no attempt is made to glue
together a string from the parsed pieces; the array is passed as is down to
Sun's ProcessBuilder class; if something is playing up there -which is not
impossible- then that's a serious problem
Paul, you'll have to do some research to see how replicable this is, include
OS/JVM info in the bug report. If a test can replicate this, then it can be
fixed.
> config property mapred.child.java.opts has maximum length that generates
> NoClassDefFoundError if exceeded
> ---------------------------------------------------------------------------------------------------------
>
> Key: HADOOP-4953
> URL: https://issues.apache.org/jira/browse/HADOOP-4953
> Project: Hadoop Core
> Issue Type: Bug
> Components: conf
> Affects Versions: 0.19.0
> Reporter: Paul Baclace
>
> There is an unexpected max length for the value of config property
> mapred.child.java.opts that, if exceeded, generates an opaque
> NoClassDefFoundError in child tasks.
> The max length for the value is 146 chars. A length of 147 chars will cause
> the exception. For example, adding a single extra space between options will
> convert a working jvm opts clause into one that always generates
> NoClassDefFoundError when tasktrackers exec child tasks.
> As laboriously diagnosed, conf/hadoop-site.xml was used to set the property
> and runs were done on "Amazon EC2 Ubuntu 8.04 hardy AMI" (Debian version
> "lenny/sid") using java 1.6.0_07-b06. Multiple slaves nodes were used and
> after conf changes, stop-all.sh and start-all.sh were run before each test.
> The job config props as found on the slave did not appear to have a truncated
> or damaged value. It made no difference whether @taskid@ appeared at the end
> or middle of the options and absence of @taskid@ did not eliminate the
> problem.
> This bug wastes considerable time because the error looks like a classpath
> problem and even after the java opts property is suspected, a character
> quoting or unsupported option seems more likely than a length limit.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.