[ http://issues.apache.org/jira/browse/DIRMINA-212?page=all ]
Trustin Lee updated DIRMINA-212:
--------------------------------
Fix Version: 0.8.3
0.9.5
Version: 0.8.2
Assign To: Trustin Lee
> Possible connection leak in SocketConnector ?
> ---------------------------------------------
>
> Key: DIRMINA-212
> URL: http://issues.apache.org/jira/browse/DIRMINA-212
> Project: Directory MINA
> Type: Bug
> Versions: 0.8.2, 0.9.4
> Environment: Observed on Solaris 9
> Java HotSpot Server VM 1.4.2_11
> Reporter: Dominique Prunier
> Assignee: Trustin Lee
> Fix For: 0.9.5, 0.8.3
>
> In SocketConnector class, it seems that there may be a race condition where
> mina lose reference on a channel that has not been closed. Since Sun removed
> any finalize methods in channels, it will remains connected forever.
> This has been observed with server which doens't accept more than one
> connection. First connection timesout according to mina but channel is not
> closed in processTimedOutSessions method. Key is removed from selector thus
> it is not notified (then handlers never see the sessionOpened event) when
> connection finally gets up late (observed with tcpdump). The reference on
> this connection is lost and socket is never closed (observed with lsof). Then
> subsequent connection always fail since we already have a phantom one opened.
> private void processTimedOutSessions( Set keys )
> {
> long currentTime = System.currentTimeMillis();
> Iterator it = keys.iterator();
> while( it.hasNext() )
> {
> SelectionKey key = ( SelectionKey ) it.next();
> if( !key.isValid() )
> continue;
> ConnectionRequest entry = ( ConnectionRequest ) key.attachment();
> if( currentTime >= entry.deadline )
> {
> entry.setException( new ConnectException() );
> key.cancel(); <-------------- MISSING CLOSE HERE ???
> }
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira