[
https://issues.apache.org/jira/browse/HBASE-16389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15416622#comment-15416622
]
Hudson commented on HBASE-16389:
--------------------------------
FAILURE: Integrated in HBase-Trunk_matrix #1394 (See
[https://builds.apache.org/job/HBase-Trunk_matrix/1394/])
HBASE-16389 Thread leak in CoprocessorHost#getTable(TableName) API (tedyu: rev
9e116e048b91ee2fef056e4140cb4091a7fd8425)
*
hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
> Thread leak in CoprocessorHost#getTable(TableName) API
> ------------------------------------------------------
>
> Key: HBASE-16389
> URL: https://issues.apache.org/jira/browse/HBASE-16389
> Project: HBase
> Issue Type: Bug
> Reporter: Ankit Singhal
> Assignee: Ankit Singhal
> Fix For: 2.0.0
>
> Attachments: HBASE-16389.patch
>
>
> There is a thread leak in below method, we are creating a default pool while
> calling
> {code}
> @Override
> public HTableInterface getTable(TableName tableName) throws IOException {
> return this.getTable(tableName,
> HTable.getDefaultExecutor(getConfiguration()));
> }
> {code}
> which will never be shutdown because in HTable, we are setting
> this.cleanupPoolOnClose to false
> {code}
> @InterfaceAudience.Private
> public HTable(TableName tableName, final ClusterConnection connection,
> final TableConfiguration tableConfig,
> final RpcRetryingCallerFactory rpcCallerFactory,
> final RpcControllerFactory rpcControllerFactory,
> final ExecutorService pool) throws IOException {
> if (connection == null || connection.isClosed()) {
> throw new IllegalArgumentException("Connection is null or closed.");
> }
> this.tableName = tableName;
> this.cleanupConnectionOnClose = false;
> this.connection = connection;
> this.configuration = connection.getConfiguration();
> this.tableConfiguration = tableConfig;
> this.pool = pool;
> if (pool == null) {
> this.pool = getDefaultExecutor(this.configuration);
> this.cleanupPoolOnClose = true;
> } else {
> this.cleanupPoolOnClose = false;
> }
> {code}
> resulted in pool to stay forever ,which eventually can lead other processes
> or the same process to starve for a threads.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)