[
https://issues.apache.org/jira/browse/HBASE-4083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13063794#comment-13063794
]
ramkrishna.s.vasudevan commented on HBASE-4083:
-----------------------------------------------
The soln can be similar as that of HBASE-4052.
Here we have to make following changes
=> if the table state is in ENABLING state do not populate in the regions map.
=> Recover by calling EnableProcessHandler. this will try to enable the table
by
onlining the regions.
Case 1:
======
If the regions were not onlined.
=> The enable handler will online all the regions and make the table state to
ENABLED
=> Scanning will work fine
Case 2 :
========
If the regions were not onlined
=> There is a check in the OpenRegionHandler to see if the region is already
onlined
=> Move the check to HRegionServer openRegion() api.
=> Create a new exception class AlreadyOnlinedException and throw it from RS.
=> In the assign() api in AssignmentManager catch this exception and add those
regions to the regions map.
=> This will ensure that the table is moved to ENABLED state.
Note:
=====
Here instead of throwing an exception we can add a return type to openRegion()
in the HRegionInterface. Both involves an interface change.
Can we proceed like this or is there any other better way?
> If Enable table is not completed and is partial, then scanning of the table
> is not working
> -------------------------------------------------------------------------------------------
>
> Key: HBASE-4083
> URL: https://issues.apache.org/jira/browse/HBASE-4083
> Project: HBase
> Issue Type: Bug
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
>
> Consider the following scenario
> Start the Master, Backup master and RegionServer.
> Create a table which in turn creates a region.
> Disable the table.
> Enable the table again.
> Kill the Active master exactly at the point before the actual region
> assignment is started.
> Restart or switch master.
> Scan the table.
> NotServingRegionExcepiton is thrown.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira