[ https://issues.apache.org/jira/browse/HIVE-15936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Dai updated HIVE-15936: ------------------------------ Status: Patch Available (was: Open) > 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)