You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Reid Chan (Jira)" <ji...@apache.org> on 2019/09/02 02:51:00 UTC
[jira] [Commented] (HBASE-22928) ScanMetrics counter update may not
happen in case of exception in TableRecordReaderImpl
[ https://issues.apache.org/jira/browse/HBASE-22928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16920581#comment-16920581 ]
Reid Chan commented on HBASE-22928:
-----------------------------------
Applied to master, branch-2, branch-2.1, branch-2.2.
> 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)