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:52:00 UTC

[jira] [Resolved] (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:all-tabpanel ]

Reid Chan resolved HBASE-22928.
-------------------------------
    Fix Version/s: 2.1.7
                   2.2.1
                   2.3.0
                   3.0.0
     Hadoop Flags: Reviewed
       Resolution: Fixed

> 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
>             Fix For: 3.0.0, 2.3.0, 2.2.1, 2.1.7
>
>
> 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)