[ https://issues.apache.org/jira/browse/HIVE-10835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14561553#comment-14561553 ]
Thejas M Nair commented on HIVE-10835: -------------------------------------- Thanks for looking into this issue [~ctang.ma]! There were some locks added as part of HIVE-6472 by [~vgumashta]. Looks like covered only some specific use cases. I feel we are likely to miss this when we add new code. How about taking an alternative approach of using a proxy class around the thrift client that does the locking ? That would be a smaller change and new code is less likely to have this bug. Something like SynchronizedHandler in HiveMetastoreClient class (though that does not seem to be used anywhere!) > Concurrency issues in JDBC driver > --------------------------------- > > Key: HIVE-10835 > URL: https://issues.apache.org/jira/browse/HIVE-10835 > Project: Hive > Issue Type: Bug > Components: JDBC > Affects Versions: 1.2.0 > Reporter: Chaoyu Tang > Assignee: Chaoyu Tang > Attachments: HIVE-10835.patch > > > Though JDBC specification specifies that "Each Connection object can create > multiple Statement objects that may be used concurrently by the program", but > that does not work in current Hive JDBC driver. In addition, there also exist > race conditions between DatabaseMetaData, Statement and ResultSet as long as > they make RPC calls to HS2 using same Thrift transport, which happens within > a connection. > So we need a connection level lock to serialize all these RPC calls in a > connection. -- This message was sent by Atlassian JIRA (v6.3.4#6332)