[ 
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

Reply via email to