Details
Description
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.
ADDENDUM:
The scenario mentioned occurs when zkless assignment is used. With zk-based assignment without the patch what could occur is the daughter regions are offlined and have no hdfs directory but have entries in meta. The daughter meta entries will prolly be picked up by the client causing NSREs.