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

stack commented on HBASE-4217:
------------------------------

This patch is looking good.

I'd say just throw exception here Ram, an NPE which has a message saying 
servername can't be null or better an illegalargumentexception (you are 
explicit in your javadoc that this can't be null):

{code}
+    if (null == serverName) {
+      LOG.error("The server name cannot be null or empty.");
+      return;
+    }
{code}

So you add new method to the HRegionInterface.  Thats good.  Is the 
'regionName' param the encoded name or the HRI#getRegionName as bytes?  I think 
it the former?  If so, we should say that in the java doc and change the name 
of the param to be encodedName rather than regionName.

We'd do it in Interface and in HRS.

In your closeRegion implementation, seems like you could save some of the work 
this method is doing by instead calling the hard to find method 
getFromOnlineRegions.

In the shell messing, do we have to add the verb +    
close_region_by_encoded_regionname?  Its kinda long?  Can't we just use current 
closeRegion and then by looking at what is passed, figure which method on HBA 
to call?

Otherwise, this is excellent Ram.

> HRS.closeRegion should be able to close regions with only the encoded name
> --------------------------------------------------------------------------
>
>                 Key: HBASE-4217
>                 URL: https://issues.apache.org/jira/browse/HBASE-4217
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.90.4
>            Reporter: Jean-Daniel Cryans
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.92.0
>
>         Attachments: HBASE-4217.patch, HBASE-4217_1.patch, HBASE-4217_2.patch
>
>
> We had some sort of an outage this morning due to a few racks losing power, 
> and some regions were left in the following state:
> ERROR: Region UNKNOWN_REGION on sv4r17s9:60020, 
> key=e32bbe1f48c9b3633c557dc0291b90a3, not on HDFS or in META but deployed on 
> sv4r17s9:60020
> That region was deleted by the master but the region server never got the 
> memo. Right now there's no way to force close it because HRS.closeRegion 
> requires an HRI and the only way to create one is to get it from .META. which 
> in our case doesn't contain a row for that region. Basically we have to wait 
> until that server is dead to get rid of the region and make hbck happy.
> The required change is to have closeRegion accept an encoded name in both HBA 
> (when the RS address is provided) and HRS since it's able to find it anyways 
> from it's list of live regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to