Daniil Kirilyuk created QPID-8749:
-------------------------------------
Summary: [Broker-J] AMQP connections may not close while
processing pending writes
Key: QPID-8749
URL: https://issues.apache.org/jira/browse/QPID-8749
Project: Qpid
Issue Type: Bug
Components: Broker-J
Affects Versions: qpid-java-broker-10.0.1
Reporter: Daniil Kirilyuk
Fix For: qpid-java-broker-10.1.0
Idle AMQP connections could not be closed sometimes, producing following
stacktraces in thread dumps:
{code:java}
"IO-/XX.XXX.XX.XXX:45532" #159java.lang.Thread.State: RUNNABLE
cpu=169433659.40mselapsed=416877.64s
at java.util.Collections.addAll(Collections.java:5867)at
org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.write(...)at
org.apache.qpid.server.transport.NonBlockingConnection.writeToTransport(...)at
org.apache.qpid.server.transport.NonBlockingConnection.processPending(...)
{code}
The issue seems to be caused by race condition when NonBlockingConnection
processes pending writes. In NonBlockingConnection#doWork() value of the
_closed variable may change between the check and processPending() call. The
_scheduledTime is not reset and may become stale. Additionally the writing
process should be optimized by batching the byte buffers.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]