[
https://issues.apache.org/jira/browse/AMQ-7343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dominic Gagne updated AMQ-7343:
-------------------------------
Attachment: ActiveMqTest_consumption.zip
> Delayed Consumption of Messages with nio+ssl Transport
> ------------------------------------------------------
>
> Key: AMQ-7343
> URL: https://issues.apache.org/jira/browse/AMQ-7343
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.15.9, 5.15.10
> Environment: ActiveMQ version: 5.15.10 or 5.15.9
> ActiveMQ configuration: default
> Client: C# running in Docker container
> Transport: nio+ssl
>
>
> Reporter: Dominic Gagne
> Priority: Critical
> Attachments: ActiveMqTest_consumption.zip
>
>
> h3.
> h3. Problem Overview
> We recently encountered an issue where a significant delay (often up to 20
> seconds) occurs between the time a message is acknowledged by a consumer and
> the time the next message is received from the broker. This issue only
> manifests itself until fairly specific conditions, but we do have a
> reproducible case. The problem occurs when the broker transport `nio+ssl` is
> used and clients are running in Docker containers. ActiveMQ versions tested
> are 5.15.9 and 5.15.10. Default ActiveMQ broker configuration can be used
> (with the exception of the nio+ssl transport). Disabling either nio or ssl in
> the broker configuration prevents this issue from occurring. Producing
> messages to the broker is not impacted whatsoever, this is strictly an issue
> for consumers.
> Using Wireshark, we analyzed all ingress and egress traffic from the Docker
> network while the consumer was running. This analysis revealed that there are
> in fact long periods of no activity on the network, despite the fact that the
> client immediately acknowledges the message and is ready to receive a new one.
> In addition to a long delay between a message being acknowledged and the next
> message being received, the initial connection to the broker takes upwards of
> 15 seconds. This is not the case if either nio or ssl is disabled (e.g.
> transport is just 'nio' or just 'ssl' works fine). Enabling verbose logging
> on the broker has not yet yielded any useful information, but we are
> continuing our investigation.
> h3.
> h3. Expected results (can be achieved by disabling nio transport):
> Sending 500 messages to the broker and then consuming them all is completed
> in ~2.5 seconds
> h4. Receive timestamps (see currentTime):
> Received Queue 1 0 - *currentTime*: 972 msgId:
> 67ddfe5f-023c-4090-9d1c-ac60160947cc, msgTimeStamp: 11/14/2019 20:10:29
> Received Queue 1 1 - *currentTime*: 981 msgId:
> 803fdea7-546f-4a80-ad3b-ad6c89669fbc, msgTimeStamp: 11/14/2019 20:10:29
> Received Queue 1 2 - *currentTime*: 983 msgId:
> dbccb3c6-4f3f-4ce5-97d8-d77a41e46561, msgTimeStamp: 11/14/2019 20:10:29
> Received Queue 1 3 - *currentTime*: 984 msgId:
> 65c550aa-1260-4e3f-9d7c-d51a62f4a3d0, msgTimeStamp: 11/14/2019 20:10:29
> Received Queue 1 4 - *currentTime*: 986 msgId:
> 725064b8-c796-429c-bd98-a48a15913d81, msgTimeStamp: 11/14/2019 20:10:29
> Received Queue 1 5 - *currentTime*: 988 msgId:
> a7335557-c564-4bb0-984e-7d87fde6646e, msgTimeStamp: 11/14/2019 20:10:29
> h3. Actual results:
> Connection takes ~15 seconds
> Producing 500 messages takes < 1 second, as expected
> Consumption of messages is delayed, alternates back and forth between ~10
> seconds and ~20 seconds between ack time and next message being received.
> h4. Receive timestamps (see currentTime):
> Received Queue 1 0 - *currentTime*: 60961 msgId:
> 370d03c9-8f00-4e49-b38d-3fa1ec4a0b3e, msgTimeStamp: 11/14/2019 20:13:06
> Received Queue 1 1 - *currentTime*: 80741 msgId:
> 93f1f217-7be4-4a8e-a7a6-7edde541d260, msgTimeStamp: 11/14/2019 20:13:26
> Received Queue 1 2 - *currentTime*: 90886 msgId:
> 23919310-a1f3-4891-98c3-886e64639eb4, msgTimeStamp: 11/14/2019 20:13:36
> Received Queue 1 3 - *currentTime*: 110731 msgId:
> cb2bdc40-a146-4f47-8ad9-efd15e411ce5, msgTimeStamp: 11/14/2019 20:13:56
> Received Queue 1 4 - *currentTime*: 120933 msgId:
> b241ac14-3573-40ef-a611-5dac34ea0ab4, msgTimeStamp: 11/14/2019 20:14:06
> Received Queue 1 5 - *currentTime*: 140734 msgId:
> 0f7eda18-8998-41c2-aa8b-5cacfc791597, msgTimeStamp: 11/14/2019 20:14:25
> h2.
> h2. To reproduce using the attached example:
> {{docker build -f ActiveMqTest/Dockerfile-ActiveMqTest -t 'activemqtest'
> ActiveMqTest/}}
> {{docker run activemqtest}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)