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]

Reply via email to