[
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