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)