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

Sergey Shelukhin commented on HIVE-12797:
-----------------------------------------

I don't think this will work unless I'm missing something... synchronized list 
synchronizes on internal mutex whereas iterations in the patch synchronize on 
the object, so nothing should prevent the list from being modified during one 
of the loops.
Imho there's no reason to have synchronized list here.
Also an interface where you getOpenSessions() but then have to sync on it is 
highly unobvious. If java had destructors, it would be easy to synchronize, but 
as is I think we should shallow-copy the list and maybe rename method to 
OpenSessionsSnapshot, or something. Or at least add the comment to the method, 
although this can still easily lead to problems if someone calls it without 
reading comments :)

> Synchronization issues with tez/llap session pool in hs2
> --------------------------------------------------------
>
>                 Key: HIVE-12797
>                 URL: https://issues.apache.org/jira/browse/HIVE-12797
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 2.0.0
>            Reporter: Vikram Dixit K
>            Assignee: Vikram Dixit K
>         Attachments: HIVE-12797.1.patch, HIVE-12797.2.patch
>
>
> The changes introduced as part of HIVE-12674 causes issues while shutting 
> down hs2 when session pools are used.
> {code}
> java.util.ConcurrentModificationException
>         at 
> java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) 
> ~[?:1.8.0_45]
>         at java.util.LinkedList$ListItr.remove(LinkedList.java:921) 
> ~[?:1.8.0_45]
>         at 
> org.apache.hadoop.hive.ql.exec.tez.TezSessionPoolManager.stop(TezSessionPoolManager.java:288)
>  ~[hive-exec-2.0.0.2.3.5.0-79.jar:2.0.0.2.3.5.0-79]
>         at 
> org.apache.hive.service.server.HiveServer2.stop(HiveServer2.java:479) 
> [hive-jdbc-2.0.0.2.3.5.0-79-standalone.jar:2.0.0.2.3.5.0-79]
>         at 
> org.apache.hive.service.server.HiveServer2$2.run(HiveServer2.java:183) 
> [hive-jdbc-2.0.0.2.3.5.0-79-standalone.jar:2.0.0.2.3.5.0-79]
> {code}



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

Reply via email to