Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Currently the AcidEventListener is added to the end of list of transactional event listeners. When DbNotificationListener is configured as 'hive.metastore.transactional.event.listeners'. The final list will be formed as :
{"DbNotificationListener" , "AcidEventListener"}This will result in backend DB lock acquisition in this order:
lock(a) { // perform some op on a lock(b) { // perform some op on b } }
On the other hand, there are some HMS API say for example commit_txn(), which calls the TxnHandler method directly, followed by DbNotificationListener processing. Which will result in the lock acquisition in reverse order:
lock(b) { // perform some op on b lock(a) { // perform some op on a } }
Note: 'a' and 'b' above are backend DB lock and not jvm locks.
Attachments
Attachments
Issue Links
- links to