[
https://issues.apache.org/jira/browse/HBASE-17182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15701115#comment-15701115
]
易剑 commented on HBASE-17182:
----------------------------
Client maybe not call closeScanner.
public int openScanner(ByteBuffer table, TScan scan) throws TIOError,
TException {
Table htable = getTable(table);
ResultScanner resultScanner = null;
try {
resultScanner = htable.getScanner(scanFromThrift(scan));
} catch (IOException e) {
throw getTIOError(e);
} finally {
closeTable(htable);
}
return addScanner(resultScanner);
}
private int addScanner(ResultScanner scanner) {
int id = nextScannerId.getAndIncrement();
scannerMap.put(id, scanner);
return id;
}
public void closeScanner(int scannerId) throws TIOError, TIllegalArgument,
TException {
LOG.debug("scannerClose: id=" + scannerId);
ResultScanner scanner = getScanner(scannerId);
if (scanner == null) {
String message = "scanner ID is invalid";
LOG.warn(message);
TIllegalArgument ex = new TIllegalArgument();
ex.setMessage("Invalid scanner Id");
throw ex;
}
scanner.close();
removeScanner(scannerId);
}
> Memory leak from openScanner of HBase thrift2
> ---------------------------------------------
>
> Key: HBASE-17182
> URL: https://issues.apache.org/jira/browse/HBASE-17182
> Project: HBase
> Issue Type: Bug
> Components: Thrift
> Reporter: 易剑
>
> Client call openScanner, but client (coredump or others) not closeScanner,
> the scanner will not be removed from scannerMap.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)