Chaoyu Tang created HIVE-12248: ---------------------------------- Summary: The rawStore used in DBTokenStore should be thread-safe Key: HIVE-12248 URL: https://issues.apache.org/jira/browse/HIVE-12248 Project: Hive Issue Type: Bug Components: Authentication Reporter: Chaoyu Tang Assignee: Chaoyu Tang
A non-thread-safe implementation of RawStore, particularly ObjectStore, set in DBTokenStore is being shared by multi-threads, which causes the race condition in DataNuclues to access the backend DB. The DN PersistenceManager(PM) in ObjectStore is not thread safe, so DBTokenStore should use a ThreadLocal ObjectStore. Following errors might be root caused by the race condition in DN PM. {code} Object of type "org.apache.hadoop.hive.metastore.model.MDelegationToken" is detached. Detached objects cannot be used with this operation. org.datanucleus.exceptions.ObjectDetachedException: Object of type "org.apache.hadoop.hive.metastore.model.MDelegationToken" is detached. Detached objects cannot be used with this operation. at org.datanucleus.ExecutionContextImpl.assertNotDetached(ExecutionContextImpl.java:5728) at org.datanucleus.ExecutionContextImpl.retrieveObject(ExecutionContextImpl.java:1859) at org.datanucleus.ExecutionContextThreadedImpl.retrieveObject(ExecutionContextThreadedImpl.java:203) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoRetrieve(JDOPersistenceManager.java:605) at org.datanucleus.api.jdo.JDOPersistenceManager.retrieveAll(JDOPersistenceManager.java:693) at org.datanucleus.api.jdo.JDOPersistenceManager.retrieveAll(JDOPersistenceManager.java:713) at org.apache.hadoop.hive.metastore.ObjectStore.getAllTokenIdentifiers(ObjectStore.java:6517) {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)