HBASE-26088 Fix thread leaks in conn#getBufferedMutator(tableName) method call (#3506)

Co-authored-by: Rushabh Shah <rushabh.shah@rushabh-ltmflld.internal.salesforce.com>
Signed-off-by: zhangduo <zhangduo@apache.org>
Signed-off-by: Anoop <anoopsamjohn@apache.org>
Signed-off-by: stack <stack@duboce.net>
Signed-off-by: Reid Chan <reidchan@apache.org>
This commit is contained in:
Rushabh Shah 2021-07-21 08:02:44 -04:00 committed by GitHub
parent cabf0dc51d
commit 253b83db57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 8 deletions

View File

@ -109,16 +109,15 @@ public interface Connection extends Abortable, Closeable {
/**
* <p>
* Retrieve a {@link BufferedMutator} for performing client-side buffering of writes. The
* {@link BufferedMutator} returned by this method is thread-safe. This BufferedMutator will
* use the Connection's ExecutorService. This object can be used for long lived operations.
* {@link BufferedMutator} returned by this method is thread-safe.
* This accessor will create a new ThreadPoolExecutor and will be shutdown once we close the
* BufferedMutator. This object can be used for long lived operations.
* </p>
* <p>
* The caller is responsible for calling {@link BufferedMutator#close()} on
* the returned {@link BufferedMutator} instance.
* </p>
* <p>
* This accessor will use the connection's ExecutorService and will throw an
* exception in the main thread when an asynchronous exception occurs.
*
* @param tableName the name of the table
*
@ -129,7 +128,10 @@ public interface Connection extends Abortable, Closeable {
/**
* Retrieve a {@link BufferedMutator} for performing client-side buffering of writes. The
* {@link BufferedMutator} returned by this method is thread-safe. This object can be used for
* long lived table operations. The caller is responsible for calling
* long lived table operations. If user passes ThreadPool in BufferedMutatorParams then we will
* use that otherwise we will create for the user. For user specified ThreadPool, it is the user's
* responsibility to shutdown. For ThreadPool created by us, we will shutdown when user calls
* {@link BufferedMutator#close()}. The caller is responsible for calling
* {@link BufferedMutator#close()} on the returned {@link BufferedMutator} instance.
*
* @param params details on how to instantiate the {@code BufferedMutator}.

View File

@ -414,9 +414,6 @@ class ConnectionImplementation implements ClusterConnection, Closeable {
if (params.getTableName() == null) {
throw new IllegalArgumentException("TableName cannot be null.");
}
if (params.getPool() == null) {
params.pool(HTable.getDefaultExecutor(getConfiguration()));
}
if (params.getWriteBufferSize() == BufferedMutatorParams.UNSET) {
params.writeBufferSize(connectionConfig.getWriteBufferSize());
}