[
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: [email protected]
For additional commands, e-mail: [email protected]