You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Steve Loughran (JIRA)" <ji...@apache.org> on 2009/01/05 14:57:44 UTC
[jira] Commented: (HADOOP-4953) config property
mapred.child.java.opts has maximum length that generates
NoClassDefFoundError if exceeded
[ 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.