You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zg...@apache.org on 2017/11/25 11:39:01 UTC
hbase git commit: HBASE-19337 AsyncMetaTableAccessor may hang when
call ScanController.terminate many times
Repository: hbase
Updated Branches:
refs/heads/master 73e3af00e -> f521000d7
HBASE-19337 AsyncMetaTableAccessor may hang when call ScanController.terminate many times
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f521000d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f521000d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f521000d
Branch: refs/heads/master
Commit: f521000d7883e83943b948989f05bfe49d78f5db
Parents: 73e3af0
Author: Guanghao Zhang <zg...@apache.org>
Authored: Thu Nov 23 17:30:02 2017 +0800
Committer: Guanghao Zhang <zg...@apache.org>
Committed: Sat Nov 25 19:29:08 2017 +0800
----------------------------------------------------------------------
.../hadoop/hbase/AsyncMetaTableAccessor.java | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f521000d/hbase-client/src/main/java/org/apache/hadoop/hbase/AsyncMetaTableAccessor.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/AsyncMetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/AsyncMetaTableAccessor.java
index 4c1d602..d2af955 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/AsyncMetaTableAccessor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/AsyncMetaTableAccessor.java
@@ -303,8 +303,8 @@ public class AsyncMetaTableAccessor {
startRow.ifPresent(scan::withStartRow);
stopRow.ifPresent(scan::withStopRow);
- if (LOG.isTraceEnabled()) {
- LOG.trace("Scanning META" + " starting at row=" + Bytes.toStringBinary(scan.getStartRow())
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Scanning META" + " starting at row=" + Bytes.toStringBinary(scan.getStartRow())
+ " stopping at row=" + Bytes.toStringBinary(scan.getStopRow()) + " for max="
+ rowUpperLimit + " with caching=" + scan.getCaching());
}
@@ -346,19 +346,26 @@ public class AsyncMetaTableAccessor {
@Override
public void onNext(Result[] results, ScanController controller) {
+ boolean terminateScan = false;
for (Result result : results) {
try {
if (!visitor.visit(result)) {
- controller.terminate();
+ terminateScan = true;
+ break;
}
- } catch (IOException e) {
+ } catch (Exception e) {
future.completeExceptionally(e);
- controller.terminate();
+ terminateScan = true;
+ break;
}
if (++currentRowCount >= rowUpperLimit) {
- controller.terminate();
+ terminateScan = true;
+ break;
}
}
+ if (terminateScan) {
+ controller.terminate();
+ }
}
}