Jeff Zhang created TEZ-2362:
-------------------------------

             Summary: 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


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