Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-19350

TestMetaWithReplicas is flaky

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.4.0, 1.3.2, 2.0.0-beta-1, 2.0.0, 1.2.7
    • None
    • None
    • Reviewed

    Description

      If the size of RegionsInTransition is zero, the list passed to ClusterStatus will be null.

      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);
            }
          }
      

      It causes NPE if someone try to do the for-each work. The HBaseFsckRepair is a real-life example.

      HBaseFsckRepair.java
              for (RegionState rs: admin.getClusterStatus().getRegionsInTransition()) {
                if (rs.getRegion().equals(region)) {
                  inTransition = true;
                  break;
                }
              }
      

      branch-2/master don't have this issue as the list of RegionsInTransition passed to ClusterStatus never be null.

      ProtobufUtil.java
          List<RegionState> rit =
            new ArrayList<>(proto.getRegionsInTransitionList().size());
          for (RegionInTransition region : proto.getRegionsInTransitionList()) {
            RegionState value = RegionState.convert(region.getRegionState());
            rit.add(value);
      }
      

      Attachments

        1. HBASE-19350.branch-1.v0.test.patch
          1 kB
          Michael Stack
        2. HBASE-19350.branch-1.v0.test.patch
          1 kB
          Michael Stack
        3. HBASE-19350.branch-1.v0.test.patch
          1 kB
          Chia-Ping Tsai
        4. HBASE-19350.branch-1.v0.test (1).patch
          1 kB
          Michael Stack
        5. HBASE-19350.branch-1.v0.test (1).patch
          1 kB
          Michael Stack

        Issue Links

          Activity

            People

              chia7712 Chia-Ping Tsai
              chia7712 Chia-Ping Tsai
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: