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