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