diff --git a/tunnel-client/src/main/java/com/alibaba/arthas/tunnel/client/RelayHandler.java b/tunnel-client/src/main/java/com/alibaba/arthas/tunnel/client/RelayHandler.java index 234b0f24d..5b1868063 100644 --- a/tunnel-client/src/main/java/com/alibaba/arthas/tunnel/client/RelayHandler.java +++ b/tunnel-client/src/main/java/com/alibaba/arthas/tunnel/client/RelayHandler.java @@ -41,6 +41,12 @@ public final class RelayHandler extends ChannelInboundHandlerAdapter { @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { logger.error("RelayHandler error", cause); - ctx.close(); + try { + if (relayChannel.isActive()) { + relayChannel.close(); + } + } finally { + ctx.close(); + } } }