Daniel Dai created HIVE-15936:
---------------------------------

             Summary: ConcurrentModificationException in ATSHook
                 Key: HIVE-15936
                 URL: https://issues.apache.org/jira/browse/HIVE-15936
             Project: Hive
          Issue Type: Bug
            Reporter: Daniel Dai
            Assignee: Daniel Dai
         Attachments: HIVE-15936.1.patch

See ATSHook error:

{noformat}
java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) 
~[?:1.8.0_112]
        at java.util.HashMap$EntryIterator.next(HashMap.java:1471) 
~[?:1.8.0_112]
        at java.util.HashMap$EntryIterator.next(HashMap.java:1469) 
~[?:1.8.0_112]
        at java.util.AbstractCollection.toArray(AbstractCollection.java:196) 
~[?:1.8.0_112]
        at com.google.common.collect.ImmutableMap.copyOf(ImmutableMap.java:290) 
~[guava-14.0.1.jar:?]
        at 
org.apache.hadoop.hive.ql.log.PerfLogger.getEndTimes(PerfLogger.java:219) 
~[hive-common-2.1.0.2.6.0.0-457.jar:2.1.0.2.6.0.0-457]
        at 
org.apache.hadoop.hive.ql.hooks.ATSHook.createPostHookEvent(ATSHook.java:347) 
~[hive-exec-2.1.0.2.6.0.0-457.jar:2.1.0.2.6.0.0-457]
        at org.apache.hadoop.hive.ql.hooks.ATSHook$2.run(ATSHook.java:206) 
[hive-exec-2.1.0.2.6.0.0-457.jar:2.1.0.2.6.0.0-457]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_112]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_112]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_112]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
{noformat}

According to [~jdere], ATSHook is currently accessing the PerfLogger on a 
separate thread, which means the main query thread can potentially write to the 
PerfLogger at the same time.
The ATSHook should access the PerfLogger on the main query thread, before it 
sends the execution to the ATS Logger thread.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to