You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2020/08/21 13:19:19 UTC

[hbase] branch master updated: HBASE-24686 [LOG] Log improvement in Connection#close (#2219)

This is an automated email from the ASF dual-hosted git repository.

vjasani pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 72be041  HBASE-24686 [LOG] Log improvement in Connection#close (#2219)
72be041 is described below

commit 72be041d1cb1e1d8b36d80f8997012149390fb7e
Author: mokai <mo...@126.com>
AuthorDate: Fri Aug 21 21:19:02 2020 +0800

    HBASE-24686 [LOG] Log improvement in Connection#close (#2219)
    
    Signed-off-by: Pankaj Kumar <pa...@apache.org>
    Signed-off-by: Viraj Jasani <vj...@apache.org>
    Signed-off-by: Sean Busbey <bu...@apache.org>
---
 .../apache/hadoop/hbase/client/AsyncConnectionImpl.java    | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionImpl.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionImpl.java
index 3ebc679..896b7dc 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionImpl.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionImpl.java
@@ -201,6 +201,10 @@ class AsyncConnectionImpl implements AsyncConnection {
     if (!closed.compareAndSet(false, true)) {
       return;
     }
+    LOG.info("Connection has been closed by {}.", Thread.currentThread().getName());
+    if(LOG.isDebugEnabled()){
+      logCallStack(Thread.currentThread().getStackTrace());
+    }
     IOUtils.closeQuietly(clusterStatusListener);
     IOUtils.closeQuietly(rpcClient);
     IOUtils.closeQuietly(registry);
@@ -214,6 +218,16 @@ class AsyncConnectionImpl implements AsyncConnection {
     }
   }
 
+  private void logCallStack(StackTraceElement[] stackTraceElements) {
+    StringBuilder stackBuilder = new StringBuilder("Call stack:");
+    for (StackTraceElement element : stackTraceElements) {
+      stackBuilder.append("\n    at ");
+      stackBuilder.append(element);
+    }
+    stackBuilder.append("\n");
+    LOG.debug(stackBuilder.toString());
+  }
+
   @Override
   public AsyncTableRegionLocator getRegionLocator(TableName tableName) {
     return new AsyncTableRegionLocatorImpl(tableName, this);