Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
0.20.1, 0.21.0
-
None
-
None
Description
If "mapred.job.tracker.history.completed.location" has been configured to write to a location which is not writable by JT, NullPointerException is thrown in TT heartbeat. Below is the Exception obtained:
2009-08-13 07:56:02,815 INFO org.apache.hadoop.ipc.Server: IPC Server handler <handler> on <port>, call heartbeat(org.apache.hadoop.mapred.TaskTrackerStatus@1e7a6ae, false, false, true, 1775) from <ip>:<port>: error: java.io.IOException: java.lang.NullPointerException java.io.IOException: java.lang.NullPointerException at org.apache.hadoop.mapred.JobHistory$JobHistoryFilesManager.moveToDone(JobHistory.java:215) at org.apache.hadoop.mapred.JobHistory$JobInfo.markCompleted(JobHistory.java:1071) at org.apache.hadoop.mapred.JobTracker.finalizeJob(JobTracker.java:2413) at org.apache.hadoop.mapred.JobInProgress.garbageCollect(JobInProgress.java:2729) at org.apache.hadoop.mapred.JobInProgress.jobComplete(JobInProgress.java:2327) at org.apache.hadoop.mapred.JobInProgress.completedTask(JobInProgress.java:2259) at org.apache.hadoop.mapred.JobInProgress.updateTaskStatus(JobInProgress.java:957) at org.apache.hadoop.mapred.JobTracker.updateTaskStatuses(JobTracker.java:3946) at org.apache.hadoop.mapred.JobTracker.processHeartbeat(JobTracker.java:3123) at org.apache.hadoop.mapred.JobTracker.heartbeat(JobTracker.java:2861) at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
Instead of an NPE, it would be helpful if an useful error message is logged.