Robbie Gemmell created QPIDJMS-205:
--------------------------------------

             Summary: make shutdown of Netty executor group wait for completion
                 Key: QPIDJMS-205
                 URL: https://issues.apache.org/jira/browse/QPIDJMS-205
             Project: Qpid JMS
          Issue Type: Bug
          Components: qpid-jms-client
    Affects Versions: 0.10.0
            Reporter: Robbie Gemmell
            Assignee: Robbie Gemmell
             Fix For: 0.11.0


The client (and some test server/transports) doesn't currently wait for 
completion when it instructs the Netty executor group for the connection to 
shut down during transport closure, it should.

Some manifestations of issues this leads to:
- The thread may still be running when e.g a container checks for Thread and 
ThreadLocal leakage during shutdown of an app using the client.
- When lots of connections are created and closed in a small period of time, 
this can lead to a lot of Thread and Selector's remaining 'in use' during the 
shutdown period. This has been seen to occasionally present itself in CI, e.g 
hitting open file descriptor limits or running out of memory for thread stack 
etc.

Making use of Netty's 'shutdownGracefully' ('shutdownNow being deprecated) and 
waiting for the completion, an observed 1 second delay is present, which is 
undesirable as it makes the tests (and real world use) take [a lot] longer. 
However as of the 4.0.41.Final release (/ 
https://github.com/netty/netty/issues/4241) which we now use thanks to 
QPIDJMS-203, using a 0ms 'grace Period' no longer sees this delay. Given that 
we dont use the group for other tasks and don't try to shut it down until after 
the lone Channel on it has been closed, supplying a 0ms grace period seems 
suitable in this case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to