This is an automated email from the ASF dual-hosted git repository. reidchan pushed a commit to branch branch-2.2 in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.2 by this push: new be41a76 HBASE-22928 ScanMetrics counter update may not happen in case of exception in TableRecordReaderImpl be41a76 is described below commit be41a767cf0169117d3530fb3723246a4023da33 Author: Pankaj <pankaj...@huawei.com> AuthorDate: Mon Sep 2 08:17:44 2019 +0530 HBASE-22928 ScanMetrics counter update may not happen in case of exception in TableRecordReaderImpl Signed-off-by: Reid Chan <reidc...@apache.org> --- .../org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java index 28f4da1..1fa943b 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java @@ -77,6 +77,10 @@ public class TableRecordReaderImpl { * @throws IOException When restarting fails. */ public void restart(byte[] firstRow) throws IOException { + // Update counter metrics based on current scan before reinitializing it + if (currentScan != null) { + updateCounters(); + } currentScan = new Scan(scan); currentScan.withStartRow(firstRow); currentScan.setScanMetricsEnabled(true); @@ -219,6 +223,7 @@ public class TableRecordReaderImpl { } catch (IOException e) { // do not retry if the exception tells us not to do so if (e instanceof DoNotRetryIOException) { + updateCounters(); throw e; } // try to handle all other IOExceptions by restarting @@ -257,6 +262,7 @@ public class TableRecordReaderImpl { updateCounters(); return false; } catch (IOException ioe) { + updateCounters(); if (logScannerActivity) { long now = System.currentTimeMillis(); LOG.info("Mapper took " + (now-timestamp)