[
https://issues.apache.org/jira/browse/HBASE-2295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12843273#action_12843273
]
stack commented on HBASE-2295:
------------------------------
I agree isEmpty is better than size... I'll just put fix in under this issue.
Thanks Todd.
I changed it to do this instead on trunk and branch:
{code}
while (!this.lockedRows.isEmpty()) {
if (LOG.isDebugEnabled()) {
LOG.debug("Waiting on " + this.lockedRows.size() + " row locks");
}
...
{code}
> Row locks may deadlock with themselves
> --------------------------------------
>
> Key: HBASE-2295
> URL: https://issues.apache.org/jira/browse/HBASE-2295
> Project: Hadoop HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: Todd Lipcon
> Assignee: dhruba borthakur
> Fix For: 0.20.4, 0.21.0
>
> Attachments: rowLockDeadlock.txt, rowLockDeadlock2.txt
>
>
> Row locks in HRegion are keyed by a int-sized hash of the row key. It's
> perfectly possible for two rows to hash to the same key. So, if any client
> tries to lock both rows, it will deadlock with itself. Switching to a 64-bit
> hash is an improvement but still sketchy.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.