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

Keith Wall updated QPID-6975:
-----------------------------
    Fix Version/s: qpid-java-6.1

> NonBlockingConnectionTLSDelegate won't read to stream end if SSLEngine is 
> closed
> --------------------------------------------------------------------------------
>
>                 Key: QPID-6975
>                 URL: https://issues.apache.org/jira/browse/QPID-6975
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: qpid-java-6.0
>            Reporter: Keith Wall
>             Fix For: qpid-java-6.0.1, qpid-java-6.1
>
>
> If an AMQP peer using TLS closes the connection gracefully, a "SSL close 
> notify" is sent as part if the SSL goodnight from peer to Broker. 
> The {{SSLEngine}} within {{NonBlockingConnectionTLSDelegate}} on receipt of 
> the "close notify" will put itself into a {{SSLEngineResult.Status.CLOSED}} 
> state.
> However, {{NonBlockingConnectionDelegate#readyForRead}} considers 
> SSLEngineResult.Status.CLOSED as meaning the channel is not ready for 
> reading.  This prevents NonBlockingConnection from ever reading the channel 
> again, so -1 is never encountered, and the connection does not immediately 
> get marked as closed.  The action of the {{ConnectionClosingTicker}} masks 
> the problem, as it intervenes after ten seconds, and closes the connection 
> anyway.
> The effect of this defect is to cause a tight loop involving the selector 
> thread.  The selector thread believes the channel is ready, the connection 
> gets scheduled, the channel is *not* read, and the channel gets reregistered 
> back on the selector, and so forth.  The tight loop continues for a 10 second 
> burst until the CCT intervenes.  If you have may connections being opened and 
> closed all the time, it may appear to be a continual tight infinite loop.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to