HBASE-25598 TestFromClientSide5.testScanMetrics is flaky (#2977)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
XinSun 2021-02-24 14:15:51 +08:00 committed by sunxin
parent 4240dca4ff
commit 9ebddeeda5

View File

@ -968,7 +968,7 @@ public class TestFromClientSide5 extends FromClientSideBase {
numRecords++; numRecords++;
} }
LOG.info("test data has " + numRecords + " records."); LOG.info("test data has {} records.", numRecords);
// by default, scan metrics collection is turned off // by default, scan metrics collection is turned off
assertNull(scanner.getScanMetrics()); assertNull(scanner.getScanMetrics());
@ -981,8 +981,6 @@ public class TestFromClientSide5 extends FromClientSideBase {
try (ResultScanner scanner = ht.getScanner(scan2)) { try (ResultScanner scanner = ht.getScanner(scan2)) {
for (Result result : scanner.next(numRecords - 1)) { for (Result result : scanner.next(numRecords - 1)) {
} }
scanner.close();
// closing the scanner will set the metrics.
assertNotNull(scanner.getScanMetrics()); assertNotNull(scanner.getScanMetrics());
} }
@ -997,7 +995,7 @@ public class TestFromClientSide5 extends FromClientSideBase {
} }
ScanMetrics scanMetrics = scanner.getScanMetrics(); ScanMetrics scanMetrics = scanner.getScanMetrics();
assertEquals("Did not access all the regions in the table", numOfRegions, assertEquals("Did not access all the regions in the table", numOfRegions,
scanMetrics.countOfRegions.get()); scanMetrics.countOfRegions.get());
} }
// check byte counters // check byte counters
@ -1006,15 +1004,14 @@ public class TestFromClientSide5 extends FromClientSideBase {
scan2.setCaching(1); scan2.setCaching(1);
try (ResultScanner scanner = ht.getScanner(scan2)) { try (ResultScanner scanner = ht.getScanner(scan2)) {
int numBytes = 0; int numBytes = 0;
for (Result result : scanner.next(1)) { for (Result result : scanner) {
for (Cell cell : result.listCells()) { for (Cell cell : result.listCells()) {
numBytes += PrivateCellUtil.estimatedSerializedSizeOf(cell); numBytes += PrivateCellUtil.estimatedSerializedSizeOf(cell);
} }
} }
scanner.close();
ScanMetrics scanMetrics = scanner.getScanMetrics(); ScanMetrics scanMetrics = scanner.getScanMetrics();
assertEquals("Did not count the result bytes", numBytes, assertEquals("Did not count the result bytes", numBytes,
scanMetrics.countOfBytesInResults.get()); scanMetrics.countOfBytesInResults.get());
} }
// check byte counters on a small scan // check byte counters on a small scan
@ -1024,15 +1021,14 @@ public class TestFromClientSide5 extends FromClientSideBase {
scan2.setSmall(true); scan2.setSmall(true);
try (ResultScanner scanner = ht.getScanner(scan2)) { try (ResultScanner scanner = ht.getScanner(scan2)) {
int numBytes = 0; int numBytes = 0;
for (Result result : scanner.next(1)) { for (Result result : scanner) {
for (Cell cell : result.listCells()) { for (Cell cell : result.listCells()) {
numBytes += PrivateCellUtil.estimatedSerializedSizeOf(cell); numBytes += PrivateCellUtil.estimatedSerializedSizeOf(cell);
} }
} }
scanner.close();
ScanMetrics scanMetrics = scanner.getScanMetrics(); ScanMetrics scanMetrics = scanner.getScanMetrics();
assertEquals("Did not count the result bytes", numBytes, assertEquals("Did not count the result bytes", numBytes,
scanMetrics.countOfBytesInResults.get()); scanMetrics.countOfBytesInResults.get());
} }
// now, test that the metrics are still collected even if you don't call close, but do // now, test that the metrics are still collected even if you don't call close, but do
@ -1062,8 +1058,10 @@ public class TestFromClientSide5 extends FromClientSideBase {
scannerWithClose.close(); scannerWithClose.close();
ScanMetrics scanMetricsWithClose = scannerWithClose.getScanMetrics(); ScanMetrics scanMetricsWithClose = scannerWithClose.getScanMetrics();
assertEquals("Did not access all the regions in the table", numOfRegions, assertEquals("Did not access all the regions in the table", numOfRegions,
scanMetricsWithClose.countOfRegions.get()); scanMetricsWithClose.countOfRegions.get());
} }
} finally {
TEST_UTIL.deleteTable(tableName);
} }
} }