[ https://issues.apache.org/jira/browse/HBASE-22928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16919290#comment-16919290 ]
Reid Chan commented on HBASE-22928: ----------------------------------- Nice catch, LGTM. > ScanMetrics counter update may not happen in case of exception in > TableRecordReaderImpl > --------------------------------------------------------------------------------------- > > Key: HBASE-22928 > URL: https://issues.apache.org/jira/browse/HBASE-22928 > Project: HBase > Issue Type: Bug > Components: mapreduce > Reporter: Pankaj Kumar > Assignee: Pankaj Kumar > Priority: Minor > > ScanMetrics counter update may not happen in case of exception in > TableRecordReaderImpl.nextKeyValue(), > There are multiple cases as below, > 1. In case of DoNotRetryIOException > {code} > // do not retry if the exception tells us not to do so > if (e instanceof DoNotRetryIOException) { > throw e; > } > {code} > 2. While creating a new scanner, > {code} > if (lastSuccessfulRow == null) { > restart(scan.getStartRow()); > } else { > restart(lastSuccessfulRow); > scanner.next(); // skip presumed already mapped row > } > {code} > 3. In case of IOException > {code} > catch (IOException ioe) { > if (logScannerActivity) { > long now = System.currentTimeMillis(); > LOG.info("Mapper took " + (now-timestamp) > + "ms to process " + rowcount + " rows"); > LOG.info(ioe.toString(), ioe); > String lastRow = lastSuccessfulRow == null ? > "null" : Bytes.toStringBinary(lastSuccessfulRow); > LOG.info("lastSuccessfulRow=" + lastRow); > } > throw ioe; > } > {code} -- This message was sent by Atlassian Jira (v8.3.2#803003)