Thiruvel Thirumoolan commented on HBASE-20001:

[~yuzhih...@gmail.com], sure, will wait for any other feedback and address 
them. I will change the method to cleanFailedSplitMergeRegions() if thats ok.

{quote}Is there a chance that null server is passed to RegionStates?
I remember a failure without the check, lemme run tests locally and check.
{quote}Why we always remove the daughter region directories when using the 
ZooKeeper based region assignments? It seems to me that it is another kind of 
data lose?
We rollback during split and merge failures in zk assignment. So, we online the 
parents and cleanup the failed splits/merges. This is demonstrated by the unit 
tests - testMergeIsRolledBackOnMERGEFailure and  
testSplitIsRolledBackOnSPLITFailure. I also explained this in one of the 
comments above, lemme know what you think.


> cleanIfNoMetaEntry() uses encoded instead of region name to lookup region
> -------------------------------------------------------------------------
>                 Key: HBASE-20001
>                 URL: https://issues.apache.org/jira/browse/HBASE-20001
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 1.3.0, 1.4.0, 1.1.7
>            Reporter: Francis Liu
>            Assignee: Thiruvel Thirumoolan
>            Priority: Major
>             Fix For: 1.3.2, 1.5.0, 1.2.7, 1.4.3
>         Attachments: HBASE-20001.branch-1.4.001.patch, 
> HBASE-20001.branch-1.4.002.patch, HBASE-20001.branch-1.4.003.patch, 
> HBASE-20001.branch-1.4.004.patch, HBASE-20001.branch-1.4.005.patch
> In RegionStates.cleanIfNoMetaEntry()
> {{if (MetaTableAccessor.getRegion(server.getConnection(), 
> hri.getEncodedNameAsBytes()) == null) {}}
> {{regionOffline(hri);}}
> {{FSUtils.deleteRegionDir(server.getConfiguration(), hri);}}
> }
> But api expects regionname
> {{public static Pair<HRegionInfo, ServerName> getRegion(Connection 
> connection, byte [] regionName)}}
> So we might end up cleaning good regions.

This message was sent by Atlassian JIRA

Reply via email to