Hello, I have been fighting for weeks with a problem in my code with "slow or bad client" connections that were increasing latency for all the other clients. I used the writeTimeOut and check the size of the write requests for each sessions. If a write timeout is thrown mina tries to close the session immediately, if the queue is too long I close it my self.
Now the session never closed right away, the sessionClosed was called 15 min later. After spending more time i noticed than on the filterClose call in the SSLFilter , we try to write a last message in the queue and we add a listener to only continue to the next filter once that message is written. So when the client is already backed up like crazy and the os buffer is full, doing this is pretty much useless as you have to wait for the entire queue of backed up messages to be consumed and the session just sit there. So in that case, i would think that the right behavior would be to clear the queue before to try to write that last ssl close message and even have a timer on the message and if it can not be written in x sec, screw the clean ssl termination just closed the socket. Please let me know what you think Thank Romain Rossier