You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Clifford Jansen (Jira)" <ji...@apache.org> on 2021/05/20 14:39:00 UTC

[jira] [Resolved] (QPID-8527) Hang in qpidd failing to resume read activity on TLS connections.

     [ 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-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org