You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ankit Singhal (JIRA)" <ji...@apache.org> on 2016/08/10 15:11:20 UTC

[jira] [Created] (HBASE-16389) Thread leak in CoprocessorHost#getTable(TableName tableName)

Ankit Singhal created HBASE-16389:
-------------------------------------

             Summary: Thread leak in CoprocessorHost#getTable(TableName tableName)
                 Key: HBASE-16389
                 URL: https://issues.apache.org/jira/browse/HBASE-16389
             Project: HBase
          Issue Type: Bug
            Reporter: Ankit Singhal


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)