You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Leo Provido (JIRA)" <ji...@apache.org> on 2019/02/13 08:24:00 UTC

[jira] [Created] (ARTEMIS-2252) Some messages are never delivered.

Leo Provido created ARTEMIS-2252:
------------------------------------

             Summary: Some messages are never delivered.
                 Key: ARTEMIS-2252
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2252
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker
    Affects Versions: 2.6.4
            Reporter: Leo Provido
         Attachments: Artemis 2.6.4 thread dump.txt

We’ve encountered what we think is a bug in Artemis. The issue arises establishing two AMQP receiver links to the same Artemis queue (durable), where each receiver link is established with an AMQP “filter set”, and then messages are sent to the queue where those messages are assigned to message groups. The messages are filtered on message type (JMSType). With this setup, we occasionally find that Artemis permanently holds onto a message (i.e. never delivers it).

We send 100,000 messages (of the same type – all messages go to the same receiver link) to the queue, where each message is assigned to one of 10,000 message groups, where each message group contains 10 messages. Furthermore, the messages are assigned to message groups in the order such that:
•	After the first 10,000 messages have been sent, each message group has been assigned one message
•	After the second 10,000 messages have been sent, each message group has been assigned two messages
•	After 90,000 message have been sent, each message group has been assigned 9 messages.

The client application creating the two receiver links accepts all messages in a message group when the last message in that message group is received.

We find the client application sometimes receives fewer than 100,000 messages from Artemis. Around 1 in 3 the application receives 99,999 messages, but sometimes, even fewer than 99,999 messages. After 2 minutes, we time out the message group containing the one missing message and reject the 9 messages we did receive. This then leaves one message in the queue. 

This message is never delivered. However, more interestingly, when we then attempt to close the connection, it takes 60 seconds to close. Furthermore, after 30 seconds, Artemis logs a thread dump. After another 30 seconds, Artemis logs a second thread dump, and then the connection is closed. The attached is a copy of both thread dumps.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)