Runtime exceptions not killing job
----------------------------------
Key: HADOOP-3039
URL: https://issues.apache.org/jira/browse/HADOOP-3039
Project: Hadoop Core
Issue Type: Bug
Components: dfs
Affects Versions: 0.16.0
Reporter: Amareshwari Sriramadasu
Priority: Blocker
Fix For: 0.16.2, 0.17.0
If a map or reduce task threw a runtime exception such as an NPE, the task, and
ultimately the job, would fail in short order. In 0.16.0, when the reduce tasks
started throwing NPEs, the tasks just hung. Eventually they timed out and were
killed. But task has to get killed immediately if it throws NPE.
Thread dump shows:
"DestroyJavaVM" prio=10 tid=0x0805f800 nid=0x6b5a waiting on condition
[0x00000000..0xbfffcc90]
java.lang.Thread.State: RUNNABLE
"Thread-12" prio=10 tid=0x083f1400 nid=0x6b87 in Object.wait()
[0xa2f37000..0xa2f37eb0]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xa3af62a0> (a java.util.LinkedList)
at
org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1680)
- locked <0xa3af62a0> (a java.util.LinkedList)
"Comm thread for task_200803181240_0001_r_000000_0" daemon prio=10
tid=0x0841f000 nid=0x6b6f waiting on condition [0xa307c000..0xa307c130]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.hadoop.mapred.Task$1.run(Task.java:283)
at java.lang.Thread.run(Unknown Source)
"[EMAIL PROTECTED]" daemon prio=10 tid=0x083fc400 nid=0x6b6d waiting on
condition [0xa30cd000..0xa30cd1b0]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.hadoop.dfs.DFSClient$LeaseChecker.run(DFSClient.java:626)
at java.lang.Thread.run(Unknown Source)
"IPC Client connection to localhost/127.0.0.1:9000" daemon prio=10
tid=0x083f6800 nid=0x6b6c in Object.wait() [0xa311d000..0xa311e030]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xa4ac0860> (a org.apache.hadoop.ipc.Client$Connection)
at java.lang.Object.wait(Object.java:485)
at org.apache.hadoop.ipc.Client$Connection.waitForWork(Client.java:247)
- locked <0xa4ac0860> (a org.apache.hadoop.ipc.Client$Connection)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:286)
It looks like Task is waiting for DataStreamer thread to get closed.
When I did streamer.setDaemon(true), the behavior was fine.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.