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.