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 GitHub
parent 8f03c4429f
commit 51a3d45f9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 11 deletions

View File

@ -970,7 +970,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());
@ -983,8 +983,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());
} }
@ -999,7 +997,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
@ -1008,15 +1006,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
@ -1026,15 +1023,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
@ -1064,8 +1060,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);
} }
} }