incubator-awf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johnathan Meehan (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (DEFT-170) Close channel if we (during read) reach EOF and there is nothing to write
Date Tue, 06 Sep 2011 13:55:10 GMT

     [ https://issues.apache.org/jira/browse/DEFT-170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Johnathan Meehan reassigned DEFT-170:
-------------------------------------

    Assignee: Johnathan Meehan

> Close channel if we (during read) reach EOF and there is nothing to write
> -------------------------------------------------------------------------
>
>                 Key: DEFT-170
>                 URL: https://issues.apache.org/jira/browse/DEFT-170
>             Project: Deft
>          Issue Type: Improvement
>            Reporter: Roger Schildmeijer
>            Assignee: Johnathan Meehan
>             Fix For: 0.4.0
>
>         Attachments: deft-170.patch
>
>
> Proposal: In AS.handleRead(..) add
> 	if (read == -1) {	// EOF
> 			reachedEOF = true;
> 			ioLoop.updateHandler(channel, interestOps &= ~SelectionKey.OP_READ);
> 			if (writeBuffer.position() == 0) {
> 				invokeCloseCallback();
> 			}
> 			return;
> 		}
> (the invokeCloseCallback() + surronding if statement is new)
> Found this issue during DEFT-151 (disitributed demo application).
> The problem is that its easy to leak connection if we dont handle this case. The problem
is that you never will get a notification/callback that the client/server is down (if you
only are reading from the asynchronous socket, as soon as you try to write to the socket,
you will get a close callback....but that is _only_ if you acctually try to write on the socket).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message