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

Eugene Koifman commented on HIVE-8711:
--------------------------------------

1. TxnHandler.detectDeadlock() - I think it makes sense to implement it like 
getDbTime() so that checks only what is expected for a given DB type.  For 
example, if Oracle throws 40001, current code will assume it's a deadlock.
2. DeadLockCreator - it seems that it can easily guarantee deadlock by calling 
updateTxns(conn1), updateLocks(conn2), updateLocks(conn1).  It could then be 
enabled permanently.
3. Nit: why are constants in TxnHandler, such as LOCK_ACQUIRED 'protected'  
They are only used in test code which is the same package as TxnHandler.
4. This not related to this bug, but MetaStoreThread.BooleanPointer() has 
multiple threads reading/writing a boolean variable which is not volatile or 
AtomicBoolean...  this looks like a recipe for trouble

> DB deadlocks not handled in TxnHandler for Postgres, Oracle, and SQLServer
> --------------------------------------------------------------------------
>
>                 Key: HIVE-8711
>                 URL: https://issues.apache.org/jira/browse/HIVE-8711
>             Project: Hive
>          Issue Type: Bug
>          Components: Transactions
>    Affects Versions: 0.14.0
>            Reporter: Alan Gates
>            Assignee: Alan Gates
>            Priority: Critical
>             Fix For: 0.14.0
>
>         Attachments: HIVE-8711.patch
>
>
> TxnHandler.detectDeadlock has code to catch deadlocks in MySQL and Derby.  
> But it does not detect a deadlock for Postgres, Oracle, or SQLServer



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

Reply via email to