You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/09/05 14:35:19 UTC
[2/2] qpid-jms git commit: QPIDJMS-205: update group shutdown to use
0ms grace period and await completion
QPIDJMS-205: update group shutdown to use 0ms grace period and await completion
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/87dbd80d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/87dbd80d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/87dbd80d
Branch: refs/heads/master
Commit: 87dbd80dc61928b5ce228342ccf26f7a3a4de006
Parents: 4a8f873
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Sep 5 15:33:45 2016 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Sep 5 15:33:45 2016 +0100
----------------------------------------------------------------------
.../jms/transports/netty/NettyTcpTransport.java | 24 +++++++++++++-------
.../jms/transports/netty/NettyEchoServer.java | 4 ----
.../qpid/jms/transports/netty/NettyServer.java | 12 ++++++----
3 files changed, 24 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/87dbd80d/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
index 08c5806..f1678af 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/transports/netty/NettyTcpTransport.java
@@ -58,8 +58,7 @@ public class NettyTcpTransport implements Transport {
private static final Logger LOG = LoggerFactory.getLogger(NettyTcpTransport.class);
- private static final int QUIET_PERIOD = 20;
- private static final int SHUTDOWN_TIMEOUT = 100;
+ private static final int SHUTDOWN_TIMEOUT = 50;
protected Bootstrap bootstrap;
protected EventLoopGroup group;
@@ -168,7 +167,10 @@ public class NettyTcpTransport implements Transport {
channel = null;
}
if (group != null) {
- group.shutdownGracefully(QUIET_PERIOD, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
+ Future<?> fut = group.shutdownGracefully(0, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
+ if (!fut.awaitUninterruptibly(2 * SHUTDOWN_TIMEOUT)) {
+ LOG.trace("Channel group shutdown failed to complete in allotted time");
+ }
group = null;
}
@@ -201,11 +203,17 @@ public class NettyTcpTransport implements Transport {
public void close() throws IOException {
if (closed.compareAndSet(false, true)) {
connected.set(false);
- if (channel != null) {
- channel.close().syncUninterruptibly();
- }
- if (group != null) {
- group.shutdownGracefully(QUIET_PERIOD, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
+ try {
+ if (channel != null) {
+ channel.close().syncUninterruptibly();
+ }
+ } finally {
+ if (group != null) {
+ Future<?> fut = group.shutdownGracefully(0, SHUTDOWN_TIMEOUT, TimeUnit.MILLISECONDS);
+ if (!fut.awaitUninterruptibly(2 * SHUTDOWN_TIMEOUT)) {
+ LOG.trace("Channel group shutdown failed to complete in allotted time");
+ }
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/87dbd80d/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyEchoServer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyEchoServer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyEchoServer.java
index 7a25617..32e86f8 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyEchoServer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyEchoServer.java
@@ -32,10 +32,6 @@ public class NettyEchoServer extends NettyServer {
private static final Logger LOG = LoggerFactory.getLogger(NettyEchoServer.class);
- public NettyEchoServer(TransportOptions options) {
- super(options);
- }
-
public NettyEchoServer(TransportOptions options, boolean needClientAuth) {
super(options, needClientAuth);
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/87dbd80d/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyServer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyServer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyServer.java
index af0cf67..28bc72c 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyServer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyServer.java
@@ -208,10 +208,14 @@ public abstract class NettyServer implements AutoCloseable {
}
// Shut down all event loops to terminate all threads.
- LOG.info("Shutting down boss group");
- bossGroup.shutdownGracefully(10, 100, TimeUnit.MILLISECONDS);
- LOG.info("Shutting down worker group");
- workerGroup.shutdownGracefully(10, 100, TimeUnit.MILLISECONDS);
+ int timeout = 100;
+ LOG.trace("Shutting down boss group");
+ bossGroup.shutdownGracefully(0, timeout, TimeUnit.MILLISECONDS).awaitUninterruptibly(timeout);
+ LOG.trace("Boss group shut down");
+
+ LOG.trace("Shutting down worker group");
+ workerGroup.shutdownGracefully(0, timeout, TimeUnit.MILLISECONDS).awaitUninterruptibly(timeout);
+ LOG.trace("Worker group shut down");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org