Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
qpid-cpp-1.39.0
-
None
-
None
-
Posix only.
Description
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.