You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2018/08/07 20:33:10 UTC
[5/8] hbase git commit: HBASE-21007 Memory leak in HBase REST server
HBASE-21007 Memory leak in HBase REST server
Close the scanner leak in rest server when using the limit number of rows.
Example: when using uris like
/sometable/*?limit=5&startrow=eGlND&endrow=eGlNE
where the scan range has more rows than the limit, the
rest server will start leaking memmory.
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d79bb23c
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d79bb23c
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d79bb23c
Branch: refs/heads/branch-1
Commit: d79bb23c646549170667aee5f309ca868b89bfdc
Parents: 1b50fe5
Author: Bosko Devetak <bo...@gmail.com>
Authored: Tue Aug 7 13:54:00 2018 +0000
Committer: Andrew Purtell <ap...@apache.org>
Committed: Tue Aug 7 12:40:40 2018 -0700
----------------------------------------------------------------------
.../main/java/org/apache/hadoop/hbase/rest/TableScanResource.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d79bb23c/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableScanResource.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableScanResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableScanResource.java
index 3effc01..b1f7eac 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableScanResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/TableScanResource.java
@@ -108,6 +108,9 @@ public class TableScanResource extends ResourceBase {
kv.getTimestamp(), CellUtil.cloneValue(kv)));
}
count--;
+ if (count == 0) {
+ results.close();
+ }
return rModel;
}
};