[
https://issues.apache.org/jira/browse/HBASE-3159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12925617#action_12925617
]
Jonathan Gray commented on HBASE-3159:
--------------------------------------
Probably not related but just uncovered a small race condition in
AssignmentManager around line 806 in assign(RegionState):
{noformat}
// Send OPEN RPC. This can fail if the server on other end is is not up.
serverManager.sendRegionOpen(plan.getDestination(), state.getRegion());
// Transition RegionState to PENDING_OPEN
state.update(RegionState.State.PENDING_OPEN);
{noformat}
We need to update the state to PENDING_OPEN before we send the RPC. Otherwise
we could get the OPENING and we'll still be in OFFLINE state locally so we will
reject the transition.
> Double play of OpenedRegionHandler for a single region; fails second time
> through and aborts Master
> ---------------------------------------------------------------------------------------------------
>
> Key: HBASE-3159
> URL: https://issues.apache.org/jira/browse/HBASE-3159
> Project: HBase
> Issue Type: Bug
> Reporter: stack
> Priority: Blocker
> Fix For: 0.90.0
>
> Attachments: hbase-meta-dupe-opened-master-only.txt,
> hbase-meta-dupe-opened.txt, TestRollingRestart-v4.patch
>
>
> Here is master log with annotations:
> http://people.apache.org/~stack/master.txt
> Region in question is:
> b8827a67a9d446f345095d25e1f375f7
> The running code is doctored in that I've added in a bit of logging -- zk in
> particular -- and I've also removed what I thought was a provocation of this
> condition, reassign inside in an assign if server has gone away when we try
> the open rpc (Turns out we have the condition even w/o this code in place).
> The log starts where the region in question timesout in RIT.
> We assign it to 186.
> Notice how we see 'Handling transition' for this region TWICE. This means
> two OpenedRegionHandlers will be scheduled -- and so the failure to delete a
> znode already gone.
> As best I can tell, the watcher for this region is triggered once only --
> which is odd because how then the double scheduling of OpenedRegionHandler
> but also, why am I not seeing OPENING, OPENING, OPENED and only what I
> presume is an OPENED?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.