mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Heath (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DIRMINA-1037) Throw exception in NioProcessor.write if the session is closing
Date Sat, 25 Jun 2016 18:41:37 GMT
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)

Mime
View raw message