[
https://issues.apache.org/jira/browse/HBASE-2964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906675#action_12906675
]
Todd Lipcon commented on HBASE-2964:
------------------------------------
As noted on the list, this seems to be due to HBASE-2461.
Prior to 2461, when we split, we would close the region before doing any of the
writes to META, and didn't hold any locks while doing the META updates. Now we
keep the write lock all the way through, even after closing the region.
I think simply moving the writeLock().unlock() up after the
this.parent.close(false) in SplitTransaction should fix this issue. I'm testing
that change on my test cluster now.
> Deadlock when RS tries to RPC to itself inside SplitTransaction
> ---------------------------------------------------------------
>
> Key: HBASE-2964
> URL: https://issues.apache.org/jira/browse/HBASE-2964
> Project: HBase
> Issue Type: Bug
> Components: ipc, regionserver
> Affects Versions: 0.90.0
> Reporter: Todd Lipcon
> Priority: Blocker
>
> In testing the 0.89.20100830 rc, I ran into a deadlock with the following
> situation:
> - All of the IPC Handler threads are blocked on the region lock, which is
> held by CompactSplitThread.
> - CompactSplitThread is in the process of trying to edit META to create the
> offline parent. META happens to be on the same server as is executing the
> split.
> Therefore, the CompactSplitThread is trying to connect back to itself, but
> all of the handler threads are blocked, so the IPC never happens. Thus, the
> entire RS gets deadlocked.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.