You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ad...@apache.org on 2018/08/07 03:25:28 UTC
kudu git commit: KUDU-2525: KuduTableInputFormat may halt before
exhausting scan
Repository: kudu
Updated Branches:
refs/heads/master cec6aa370 -> 60b140e26
KUDU-2525: KuduTableInputFormat may halt before exhausting scan
Change-Id: Ifbfdd2efbd281e4d849917664b33e183e180bafd
Reviewed-on: http://gerrit.cloudera.org:8080/11111
Reviewed-by: Adar Dembo <ad...@cloudera.com>
Tested-by: Kudu Jenkins
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/60b140e2
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/60b140e2
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/60b140e2
Branch: refs/heads/master
Commit: 60b140e2622d5b7ddb93ee02d39767bccae3371d
Parents: cec6aa3
Author: qqchang2nd <qq...@gmail.com>
Authored: Thu Aug 2 18:51:21 2018 +0800
Committer: Adar Dembo <ad...@cloudera.com>
Committed: Tue Aug 7 03:24:03 2018 +0000
----------------------------------------------------------------------
.../org/apache/kudu/mapreduce/KuduTableInputFormat.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/60b140e2/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
----------------------------------------------------------------------
diff --git a/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java b/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
index c09f805..c39e715 100644
--- a/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
+++ b/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableInputFormat.java
@@ -445,7 +445,16 @@ public class KuduTableInputFormat extends InputFormat<NullWritable, RowResult>
return;
}
try {
- iterator = scanner.nextRows();
+ // scanner.nextRows() sometimes returns an empty RowResultIterator, but
+ // scanner.hasMoreRows() returns still true, so we need to continue
+ // iterating on the scanner until scanner.hasMoreRows() returns false.
+ //
+ // TODO (qqzhang) In future, the backend can guarantee that
+ // TabletService.Scan() would not return the empty results, we need to
+ // remove the loop.
+ do {
+ iterator = scanner.nextRows();
+ } while (!iterator.hasNext() && scanner.hasMoreRows());
} catch (Exception e) {
throw new IOException("Couldn't get scan data", e);
}