From a9c36996ebc1326c9769d5aa5076070fefcdef64 Mon Sep 17 00:00:00 2001 From: niuyulin Date: Thu, 6 Aug 2020 16:17:26 +0800 Subject: [PATCH] HBASE-24825 Add UncaughtExceptionHandler for NettyRpcConnection Relogin thread --- .../org/apache/hadoop/hbase/ipc/NettyRpcConnection.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java index d127b95876b5..8c575d8fe222 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcConnection.java @@ -33,6 +33,7 @@ import org.apache.hadoop.hbase.security.NettyHBaseRpcConnectionHeaderHandler; import org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler; import org.apache.hadoop.hbase.security.SaslChallengeDecoder; +import org.apache.hadoop.hbase.util.Threads; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; import org.apache.yetus.audience.InterfaceAudience; @@ -77,8 +78,8 @@ class NettyRpcConnection extends RpcConnection { private static final Logger LOG = LoggerFactory.getLogger(NettyRpcConnection.class); private static final ScheduledExecutorService RELOGIN_EXECUTOR = Executors - .newSingleThreadScheduledExecutor( - new ThreadFactoryBuilder().setNameFormat("Relogin-pool-%d").build()); + .newSingleThreadScheduledExecutor(new ThreadFactoryBuilder().setNameFormat("Relogin-pool-%d") + .setUncaughtExceptionHandler(Threads.LOGGING_EXCEPTION_HANDLER).build()); private final NettyRpcClient rpcClient; @@ -168,6 +169,7 @@ private void scheduleRelogin(Throwable error) { if (error instanceof FallbackDisallowedException) { return; } + LOG.trace("Try scheduleRelogin."); if (!provider.canRetry()) { LOG.trace("SASL Provider does not support retries"); return;