[
https://issues.apache.org/jira/browse/MAPREDUCE-5253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13660100#comment-13660100
]
Karl D. Gierach commented on MAPREDUCE-5253:
--------------------------------------------
The patch also should be applied to this file under the current trunk (as noted
by Chris Nauroth).
https://github.com/apache/hadoop-common/blob/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/MapReduceChildJVM.java#L156
> Whitespace value entry in mapred-site.xml for
> name=mapred.reduce.child.java.opts causes child tasks to fail at launch
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: MAPREDUCE-5253
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-5253
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: task
> Affects Versions: 1.1.2
> Environment: Centos 6.2 32Bit, OpenJDK
> Reporter: Karl D. Gierach
> Fix For: 1.1.3
>
>
> Hi,
> Below is a patch for Hadoop v1.1.2. I'm new to this list, so if I need to
> write up a JIRA ticket for this, please let me know.
> The defect scenario is that if you enter any white space within values in
> this file:
> /etc/hadoop/mapred-site.xml
> e.g.: (a white space prior to the -X...)
> <property>
> <name>mapred.reduce.child.java.opts</name>
> <value> -Xmx1G</value>
> </property>
> All of the child jobs fail, and each child gets an error in the stderr log
> like:
> Could not find the main class: . Program will exit.
> The root cause is obvious in the patch below - the split on the value was
> done on whitespace, and any preceding whitespace ultimately becomes a
> zero-length entry on the child jvm command line, causing the jvm to think
> that a '' argument is the main class. The patch just skips over any
> zero-length entries prior to adding them to the jvm vargs list. I looked in
> trunk as well, to see if the patch would apply there but it looks like Tasks
> were refactored and this code file is not present any more.
> This error occurred on Open JDK, Centos 6.2, 32 bit.
> Regards,
> Karl
> Index: src/mapred/org/apache/hadoop/mapred/TaskRunner.java
> ===================================================================
> --- src/mapred/org/apache/hadoop/mapred/TaskRunner.java (revision 1482686)
> +++ src/mapred/org/apache/hadoop/mapred/TaskRunner.java (working copy)
> @@ -437,7 +437,9 @@
> vargs.add("-Djava.library.path=" + libraryPath);
> }
> for (int i = 0; i < javaOptsSplit.length; i++) {
> - vargs.add(javaOptsSplit[i]);
> + if( javaOptsSplit[i].trim().length() > 0 ) {
> + vargs.add(javaOptsSplit[i]);
> + }
> }
>
> Path childTmpDir = createChildTmpDir(workDir, conf, false);
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira