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

Bikas Saha edited comment on TEZ-2362 at 4/25/15 12:24 AM:
-----------------------------------------------------------

[~zjffdu] Please review


was (Author: bikassaha):
[~jeffzhang] Please review

> State Change Notifier Thread should be stopped when dag is completed
> --------------------------------------------------------------------
>
>                 Key: TEZ-2362
>                 URL: https://issues.apache.org/jira/browse/TEZ-2362
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Jeff Zhang
>            Assignee: Bikas Saha
>         Attachments: TEZ-2362.1.patch
>
>
> For each dag, there's one thread of State Change Notifier. Should stop it 
> when dag is completed. Otherwise it may exhaust the thread resources of AM 
> and slow down AM for one sessions with lots of DAGs.  
> JStack trace for multiple threads of State Change Notifier
> {code}
> "State Change Notifier DAG: dag_1429844178238_0001_3" daemon prio=5 
> tid=0x00007fa525596800 nid=0x102503 waiting on condition [0x000000019e362000]
>    java.lang.Thread.State: WAITING (parking)
>     at sun.misc.Unsafe.park(Native Method)
>     - parking to wait for  <0x0000000706f2b3e8> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>     at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
>     at 
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
>     at 
> org.apache.tez.dag.app.dag.StateChangeNotifier$1.run(StateChangeNotifier.java:100)
>    Locked ownable synchronizers:
>     - None
> "State Change Notifier DAG: dag_1429844178238_0001_2" daemon prio=5 
> tid=0x00007fa529025000 nid=0x101f03 waiting on condition [0x000000019e059000]
>    java.lang.Thread.State: WAITING (parking)
>     at sun.misc.Unsafe.park(Native Method)
>     - parking to wait for  <0x0000000706f2f3e8> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>     at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
>     at 
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
>     at 
> org.apache.tez.dag.app.dag.StateChangeNotifier$1.run(StateChangeNotifier.java:100)
>    Locked ownable synchronizers:
>     - None
> "State Change Notifier DAG: dag_1429844178238_0001_1" daemon prio=5 
> tid=0x00007fa52539a800 nid=0xd1133 waiting on condition [0x00000001859d3000]
>    java.lang.Thread.State: WAITING (parking)
>     at sun.misc.Unsafe.park(Native Method)
>     - parking to wait for  <0x0000000706f2d500> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>     at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
>     at 
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
>     at 
> org.apache.tez.dag.app.dag.StateChangeNotifier$1.run(StateChangeNotifier.java:100)
>    Locked ownable synchronizers:
>     - None
> "State Change Notifier DAG: dag_1429844178013_0001_1" daemon prio=5 
> tid=0x00007fa526396800 nid=0xd191b waiting on condition [0x0000000192a3d000]
>    java.lang.Thread.State: WAITING (parking)
>     at sun.misc.Unsafe.park(Native Method)
>     - parking to wait for  <0x0000000706f18c98> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>     at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
>     at 
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
>     at 
> org.apache.tez.dag.app.dag.StateChangeNotifier$1.run(StateChangeNotifier.java:100)
>    Locked ownable synchronizers:
>     - None
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to