michaelpearce-gain commented on a change in pull request #2759: ARTEMIS-2408
Too many opened FDs after server stops
URL: https://github.com/apache/activemq-artemis/pull/2759#discussion_r304573959
##########
File path:
artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
##########
@@ -407,15 +408,28 @@ public void stop(final boolean criticalError) throws
Exception {
conn.disconnect(criticalError);
}
+ Map<Acceptor, Future<?>> acceptorFutures = new HashMap<>();
for (Acceptor acceptor : acceptors.values()) {
try {
- acceptor.stop();
+ acceptorFutures.put(acceptor, acceptor.asyncStop());
} catch (Throwable t) {
ActiveMQServerLogger.LOGGER.errorStoppingAcceptor(acceptor.getName());
}
}
+ long acceptorTimeout = System.currentTimeMillis() + 3000;
+ for (Map.Entry<Acceptor, Future<?>> acceptorFuture :
acceptorFutures.entrySet()) {
+ if (acceptorFuture.getValue() != null) {
+ try {
+ acceptorFuture.getValue().get(Math.max(0, acceptorTimeout -
System.currentTimeMillis()), TimeUnit.MILLISECONDS);
Review comment:
Has a physical test been done to prove the network one still works? If i
remember we found it the hard way a year or two back and it took a physcial
retest to prove it, i realise the test tried to simulate but the times a
phsycial test has found issue where simulated didnt.
Just i am super cautious here, as these are failure scenarious already been
bitten by
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services