dakirily commented on PR #463: URL: https://github.com/apache/qpid-broker-j/pull/463#issuecomment-6360285652
CLOSE_EXISTING can still exceed the close deadline during active message delivery: In [AMQPConnection_1_0Impl.java:978–980](https://github.com/apache/qpid-broker-j/blob/4d857328d2eb4ae51028f40de2e92cff278e38cd/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java#L978-L980), the deadline is started and the close task is queued, but stopConnection() is not called. If the existing connection has a consumer with a large backlog and sufficient credit, and its peer continues reading: - [ProcessPendingIterator.next()](https://github.com/apache/qpid-broker-j/blob/4d857328d2eb4ae51028f40de2e92cff278e38cd/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java#L1777-L1814) continues to prioritise session work over the queued close task - [NonBlockingConnection.processPending()](https://github.com/apache/qpid-broker-j/blob/4d857328d2eb4ae51028f40de2e92cff278e38cd/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java#L363-L397) can remain in its loop as long as writes make sufficient progress - The ticker is checked before entering this loop; the deadline is not checked within it Consequently, although the deadline has been installed, both its enforcement and the close task can be delayed. Closing the existing connection and resuming Open on the replacement connection can therefore take longer than connection.closeResponseTimeout. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
