Chia-Ping Tsai created HBASE-19350:
--------------------------------------
Summary: TestMetaWithReplicas is flaky in branch-1
Key: HBASE-19350
URL: https://issues.apache.org/jira/browse/HBASE-19350
Project: HBase
Issue Type: Bug
Reporter: Chia-Ping Tsai
Assignee: Chia-Ping Tsai
If the size of RegionsInTransition is zero, the list passed to
{{ClusterStatus}} will be null.
{code:title=ClusterStatus.java}
Set<RegionState> rit = null;
if (!proto.getRegionsInTransitionList().isEmpty()) {
rit = new HashSet<RegionState>(proto.getRegionsInTransitionList().size());
for (RegionInTransition region : proto.getRegionsInTransitionList()) {
RegionState value = RegionState.convert(region.getRegionState());
rit.add(value);
}
}
{code}
It causes NPE if someone try to do the for-each work. The HBaseFsckRepair is a
real-life example.
{code:title=HBaseFsckRepair.java}
for (RegionState rs: admin.getClusterStatus().getRegionsInTransition())
{
if (rs.getRegion().equals(region)) {
inTransition = true;
break;
}
}
{code}
branch-2/master don't have this issue as the list of RegionsInTransition passed
to {{ClusterStatus}} never be null.
{code:title=ProtobufUtil.java}
List<RegionState> rit =
new ArrayList<>(proto.getRegionsInTransitionList().size());
for (RegionInTransition region : proto.getRegionsInTransitionList()) {
RegionState value = RegionState.convert(region.getRegionState());
rit.add(value);
}
{code}
However, the patch will be committed to branch-2/master for consistency.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)