[ 
https://issues.apache.org/jira/browse/MAPREDUCE-2785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13105516#comment-13105516
 ] 

Steve Loughran commented on MAPREDUCE-2785:
-------------------------------------------

This is surprisingly hard to patch. I tried in TestMiniMRBringup, looking for 
the exception on creation, but the problem is that it happens in a child 
thread. 

This is the stack trace you get in a separate thread from the test runner:
2011-09-15 18:14:19,382 WARN  mapred.JobTracker 
(JobTracker.java:startTracker(314)) - Error starting tracker: 
java.io.IOException: No Hadoop Log dir - the configuration property 
hadoop.job.history.location is undefined, as is the system property 
hadoop.log.dir
        at org.apache.hadoop.mapred.JobHistory.initLogDir(JobHistory.java:544)
        at org.apache.hadoop.mapred.JobHistory.init(JobHistory.java:502)
        at org.apache.hadoop.mapred.JobTracker$2.run(JobTracker.java:2334)
        at org.apache.hadoop.mapred.JobTracker$2.run(JobTracker.java:2331)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2331)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2192)
        at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2186)
        at org.apache.hadoop.mapred.JobTracker.startTracker(JobTracker.java:300)
        at 
org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner$1.run(MiniMRCluster.java:114)
        at 
org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner$1.run(MiniMRCluster.java:112)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at 
org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner.run(MiniMRCluster.java:112)
        at java.lang.Thread.run(Thread.java:662)
-But as these threads are run from the constructor, the cluster is impossible 
to shut down cleanly afterwards. 

For that reason: no tests

> MiniMR cluster thread crashes if no hadoop log dir set
> ------------------------------------------------------
>
>                 Key: MAPREDUCE-2785
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-2785
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: jobtracker
>    Affects Versions: 0.20.203.0
>            Reporter: Steve Loughran
>            Priority: Minor
>         Attachments: MAPREDUCE-2785.patch
>
>
> I'm marking this as minor as it is most obvious in the MiniMRCluster, but the 
> root cause is in the JT. 
> If you instantiate an MiniMR Cluster without setting 
> {{hadoop.job.history.location}} in the configuration and the system property 
> {{hadoop.log.dir}} unset, then the JobHistory throws an NPE. In production, 
> that would be picked up as a failure to start the JT. In the MiniMRCluster, 
> all it does is crash the JT thread -which isn't noticed by the MiniMR 
> cluster. You see the logged error, but the tests will just timeout waiting 
> for things to come up
> 2011/08/08 17:46:26:427 CEST [ERROR][Thread-44] 
> org.apache.hadoop.mapred.MiniMRCluster - Job tracker crashed 
> <java.lang.NullPointerException>         java.lang.NullPointerException
>       at java.io.File.<init>(File.java:222)
>       at org.apache.hadoop.mapred.JobHistory.initLogDir(JobHistory.java:531)
>       at org.apache.hadoop.mapred.JobHistory.init(JobHistory.java:499)
>       at org.apache.hadoop.mapred.JobTracker$2.run(JobTracker.java:2316)
>       at org.apache.hadoop.mapred.JobTracker$2.run(JobTracker.java:2313)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:396)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
>       at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2313)
>       at org.apache.hadoop.mapred.JobTracker.<init>(JobTracker.java:2171)
>       at org.apache.hadoop.mapred.JobTracker.startTracker(JobTracker.java:300)
>       at 
> org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner$1.run(MiniMRCluster.java:114)
>       at 
> org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner$1.run(MiniMRCluster.java:112)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:396)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
>       at 
> org.apache.hadoop.mapred.MiniMRCluster$JobTrackerRunner.run(MiniMRCluster.java:112)
>       at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to