Dave Heath created DIRMINA-1037:
-----------------------------------
Summary: Throw exception in NioProcessor.write if the session is
closing
Key: DIRMINA-1037
URL: https://issues.apache.org/jira/browse/DIRMINA-1037
Project: MINA
Issue Type: Bug
Components: Core, Protocol - HTTP, Transport
Affects Versions: 2.0.13
Environment: Windows Server 2012 R2
mina-core 2.0.13
Reporter: Dave Heath
Attachments: throw_exception_when_closing.patch
There seems to be a race condition where NioProcessor.write() can be called
after the session has been marked as closing. This causes the session to remain
open indefinitely, because it is waiting to finish writing before it closes.
Over time, this causes memory issues as the number of sessions stuck open grows
indefinitely (particularly because these sessions are using SSL).
I'm attaching a patch that fixes the problem. It simply throws an exception if
the session is already marked as closing when write() is called.
This only seems to be an issue on Windows; I can't reproduce it on Unix
systems. It also involves a problematic client that sends a RST packet as soon
as it's done sending data to our HTTPS server; this sometimes causes the
session to start closing before all of the data has been received.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)