Kato Kaito created QPID-8772:
--------------------------------
Summary: [Broker-J] Excessive CPU usage from continuous
rescheduling of blocked TCP/TLS writes
Key: QPID-8772
URL: https://issues.apache.org/jira/browse/QPID-8772
Project: Qpid
Issue Type: Bug
Components: Broker-J
Affects Versions: qpid-java-broker-10.1.1
Reporter: Kato Kaito
Deployments with many concurrent AMQP connections can experience write
backpressure when some clients consume data slowly or communicate over
constrained network paths, such as VPNs or TCP proxies. In these conditions,
outbound data remains buffered while the broker waits for clients to receive it.
The native TCP/TLS transport can repeatedly reschedule a connection with
pending output without waiting for the socket to become writable. This causes
repeated write attempts even when the connection cannot make progress. A stale
partial-read indication can also keep a connection scheduled when subsequent
processing skips reads.
This behavior can consume significant CPU despite limited network throughput
and occupy I/O workers needed by other connections. The impact is particularly
relevant when several slow connections share an I/O pool with otherwise healthy
clients.
TLS requires an additional distinction: pending application output may be
waiting for peer handshake data rather than socket write capacity. In this
case, write readiness cannot advance the connection; the transport must allow
reads and wait for incoming data.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]