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

Reply via email to