You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2008/06/24 08:43:46 UTC

[jira] Commented: (HBASE-543) A region's state is kept in several places in the master opening the possibility for race conditions

    [ https://issues.apache.org/jira/browse/HBASE-543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12607494#action_12607494 ] 

stack commented on HBASE-543:
-----------------------------

Here's some state changes that currently look unsafe:

+ On open, the move from unassigned to pending is done non-transactionally: ServerManager line 438
+ In checkAssigned in BaseScanner, around line 350, we remove entry from unassignedRegions and from pendingRegions non-transactionally.

Looking to see if can squash together unassigned and pending.

> A region's state is kept in several places in the master opening the possibility for race conditions
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-543
>                 URL: https://issues.apache.org/jira/browse/HBASE-543
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.1.0, 0.1.1, 0.2.0
>            Reporter: Jim Kellerman
>            Assignee: stack
>            Priority: Critical
>             Fix For: 0.2.0
>
>
> A region's state exists in multiple maps in the RegionManager: unassignedRegions, pendingRegions, regionsToClose, closingRegions, regionsToDelete, etc.
> One of these race conditions was found in HBASE-534.
> For HBase-0.1.x, we should just patch the holes we find.
> The ultimate solution (which requires a lot of changes in HMaster) should be applied to HBase trunk.
> Proposed solution:
> Create a class that encapsulates a region's state and provide synchronized access to the class that validates state changes.
> There should be a single structure that holds regions in these transitional states and it should be a synchronized collection of some kind.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.