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

Clifford Jansen resolved QPID-8527.
-----------------------------------
    Resolution: Fixed

My first attempt at fix was to look at NSS function SSL_DataPending() but the 
fine print indicates it is not reliable to indicate the presence of unread 
bytes buffered by the SSL layer. The actual fix unconditionally reschedules 
another read/decode cycle if the existing one is stopped for a used up time 
slice (for SslSocket instances only).

> Hang in qpidd failing to resume read activity on TLS connections.
> -----------------------------------------------------------------
>
>                 Key: QPID-8527
>                 URL: https://issues.apache.org/jira/browse/QPID-8527
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: qpid-cpp-1.39.0
>         Environment: Posix only.
>            Reporter: Clifford Jansen
>            Assignee: Clifford Jansen
>            Priority: Major
>
> The Posix AsynchIO implementation imposes a timeslice on read and write 
> activity to promote resource fairness between AMQP connections.
> This mechanism relies on the poller to reschedule the suspended read activity 
> which it does when it sees unread bytes on the socket. This works for normal 
> TCP sockets. It can fail for TLS connections if the TLS layer (libnss) has 
> buffered bytes that are "hidden" from the poller.
> The write side doesn't get starved or fail to notice when a socket is 
> unblocked for writing in the TLS case.
> Posix only. The Windows implementation relies on the read and write 
> completions being fairly evenly distributed between connections.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to