[ 
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)

Reply via email to