hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chia-Ping Tsai (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-19350) TestMetaWithReplicas is flaky in branch-1
Date Mon, 27 Nov 2017 08:43:00 GMT
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)

Mime
View raw message