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

Alexander Kolbasov commented on HIVE-15373:
-------------------------------------------

Oh, I see. So the story is interesting. I was looking at HIVE-13836 and the fix 
for that. It seems that the problem is with HIVE-9174 which uses non 
thread-local RawStore which isn't thread-safe and the cover-up was HIVE-13836 
where the real solution should have involved thread-local RawStore.

This means that all users of RawStoreProxy are in trouble because they do not 
use thread-locals. Looking at the code, these are:

* CompactorThread (hopefully there is only one)
* DbNotificationListener that does have a problem
* HiveMetaStore.HMSHandler which uses thread-local.

So this is really a problem for DbNotification listener.

So given the current model of thread-local access, this is a problem specific 
to the DbNotificationListener which should use thread-local RawStore rather 
than cover up things with a lock.

> Transaction management isn't thread-safe
> ----------------------------------------
>
>                 Key: HIVE-15373
>                 URL: https://issues.apache.org/jira/browse/HIVE-15373
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>            Reporter: Alexander Kolbasov
>
> ObjectStore.java has several important calls which are not thread-safe:
> * openTransaction()
> * commitTransaction()
> * rollbackTransaction()
> These should be made thread-safe.



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

Reply via email to