Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-8482

Assign region throw exception when some region is deployed on affinity node and some on non-affinity node

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.21.1
    • 1.21.2
    • Storage - HBase
    • None

    Description

      0001-DRILL-8482-Assign-region-throw-exception-when-some-r.patchDescribe the bug
         Assign region throw exception when some region is deployed on affinity node and some on non-affinity node。

      To Reproduce
      Steps to reproduce the behavior:

      1. NavigableMap<HRegionInfo,ServerName> regionsToScan = Maps.newTreeMap();
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[0], splits[1]), SERVER_A);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[1], splits[2]), SERVER_A);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[2], splits[3]), SERVER_B);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[3], splits[4]), SERVER_B);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[6], splits[7]), SERVER_D);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[7], splits[8]), SERVER_D);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[8], splits[9]), SERVER_D);
        regionsToScan.put(new HRegionInfo(TABLE_NAME, splits[9], splits[10]), SERVER_D);
        final List<DrillbitEndpoint> endpoints = Lists.newArrayList();
        endpoints.add(DrillbitEndpoint.newBuilder().setAddress(HOST_A).setControlPort(1234).build());
        endpoints.add(DrillbitEndpoint.newBuilder().setAddress(HOST_B).setControlPort(1234).build());
        endpoints.add(DrillbitEndpoint.newBuilder().setAddress(HOST_C).setControlPort(1234).build());
        
        HBaseGroupScan scan = new HBaseGroupScan();
        scan.setRegionsToScan(regionsToScan);
        scan.setHBaseScanSpec(new HBaseScanSpec(TABLE_NAME_STR, splits[0], splits[0], null));
        scan.applyAssignments(endpoints);

      Expected behavior
       A has 3 regions

       B has 2 regions

       C has 3 regions

      Error detail, log output or screenshots

      Caused by: java.lang.NullPointerException: null
              at org.apache.drill.exec.store.hbase.HBaseGroupScan.applyAssignments(HBaseGroupScan.java:283)

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            shihuafeng shihuafeng
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: