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