You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bh...@apache.org on 2020/07/30 17:35:24 UTC
[hbase] branch branch-1 updated: HBASE-24788: Fix the connection
leaks on getting hbase admin from unclosed connection (#2170)
This is an automated email from the ASF dual-hosted git repository.
bharathv pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-1 by this push:
new ac576d2 HBASE-24788: Fix the connection leaks on getting hbase admin from unclosed connection (#2170)
ac576d2 is described below
commit ac576d23e5cd628b396ae4cd4011ce9a1d80a8f2
Author: Bharath Vissapragada <bh...@apache.org>
AuthorDate: Thu Jul 30 10:35:11 2020 -0700
HBASE-24788: Fix the connection leaks on getting hbase admin from unclosed connection (#2170)
Rewrote the patch for branch-1 since master has significanly diverged.
(cherry picked from commit dc5ef7af1f8b9e386495a73924c9442203f65a77)
Co-authored-by: Bharath Vissapragada <bh...@apache.org>
Signed-off-by: Bharath Vissapragada <bh...@apache.org>
Signed-off-by: Sandeep Pal <50...@users.noreply.github.com>
Co-authored-by: Sandeep Pal <50...@users.noreply.github.com>
---
.../org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java | 4 ++--
.../org/apache/hadoop/hbase/replication/TestReplicationBase.java | 8 +++-----
.../hadoop/hbase/replication/TestReplicationSmallTests.java | 6 ++----
.../hadoop/hbase/security/access/TestNamespaceCommands.java | 9 ++-------
4 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
index 443d4b2..2109e05 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableOutputFormat.java
@@ -173,8 +173,8 @@ implements Configurable {
@Override
public void checkOutputSpecs(JobContext context) throws IOException,
InterruptedException {
-
- try (Admin admin = ConnectionFactory.createConnection(getConf()).getAdmin()) {
+ try (Connection conn = ConnectionFactory.createConnection(getConf());
+ Admin admin = conn.getAdmin()) {
TableName tableName = TableName.valueOf(this.conf.get(OUTPUT_TABLE));
if (!admin.tableExists(tableName)) {
throw new TableNotFoundException("Can't write, table does not exist:" +
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java
index ddd3195..b0f3f34 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java
@@ -145,12 +145,10 @@ public class TestReplicationBase {
table.addFamily(fam);
fam = new HColumnDescriptor(noRepfamName);
table.addFamily(fam);
- Connection connection1 = ConnectionFactory.createConnection(conf1);
- Connection connection2 = ConnectionFactory.createConnection(conf2);
- try (Admin admin1 = connection1.getAdmin()) {
+ Connection connection1 = utility1.getConnection();
+ Connection connection2 = utility2.getConnection();
+ try (Admin admin1 = connection1.getAdmin(); Admin admin2 = connection2.getAdmin()) {
admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);
- }
- try (Admin admin2 = connection2.getAdmin()) {
admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);
}
utility1.waitUntilAllRegionsAssigned(tableName);
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java
index f94ad5a..0bd339a 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java
@@ -518,12 +518,10 @@ public class TestReplicationSmallTests extends TestReplicationBase {
fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);
table.addFamily(fam);
- Connection connection1 = ConnectionFactory.createConnection(conf1);
- Connection connection2 = ConnectionFactory.createConnection(conf2);
- try (Admin admin1 = connection1.getAdmin()) {
+ try (Admin admin1 = utility1.getConnection().getAdmin()) {
admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);
}
- try (Admin admin2 = connection2.getAdmin()) {
+ try (Admin admin2 = utility2.getConnection().getAdmin()) {
admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);
}
utility1.waitUntilAllRegionsAssigned(tablename);
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java
index a20ceeb..72cc7e6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java
@@ -303,14 +303,9 @@ public class TestNamespaceCommands extends SecureTestUtil {
AccessTestAction listAction = new AccessTestAction() {
@Override
public Object run() throws Exception {
- Connection unmanagedConnection =
- ConnectionFactory.createConnection(UTIL.getConfiguration());
- Admin admin = unmanagedConnection.getAdmin();
- try {
+ try (Connection conn = ConnectionFactory.createConnection(UTIL.getConfiguration());
+ Admin admin = conn.getAdmin()) {
return Arrays.asList(admin.listNamespaceDescriptors());
- } finally {
- admin.close();
- unmanagedConnection.close();
}
}
};