[ https://issues.apache.org/jira/browse/ARTEMIS-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16985833#comment-16985833 ]
Mikko Niemi commented on ARTEMIS-2560: -------------------------------------- Additional tests were done. I added results of the tests to the description of this issue. > Duplicate messages created by cluster lead to OOME crash > -------------------------------------------------------- > > Key: ARTEMIS-2560 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2560 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP > Affects Versions: 2.10.1 > Reporter: Mikko Niemi > Priority: Major > Attachments: python-qpid-consumer.py, python-qpid-producer.py, > server0-broker.xml, server1-broker.xml > > > Summary: When using two node cluster with very simple configuration (see > attached broker.xml files), duplicate messages are generated to queue when > Python client is used to consume messages one by one from alternating nodes. > Duplicate messages are generated until OutOfMemoryException crashes the > broker. > Detailed description how to produce this problem: > # Create two node cluster using attached broker.xml files. Node names are > server0 and server1 for the rest of this description. > # Produce 100 messages to a queue defined in the address configuration > inside broker.xml file on node server0. See attached Python producer. > Produced messages have identical content. Command to produce the messages > using the attached Python producer: "python python-qpid-producer.py -u > $username -p $password -H server0 -a exampleQueue -m TestMessageFooBar -A 100" > # Consume one message from server1 using attached Python consumer. Cluster > will balance the messages to server1 and total amount of messages is > decreased by one. After one message is consumed, session and connection are > closed. Command to consume a message using attached Python consumer: "python > python-qpid-consumer.py -u $username -p $password -H server1 -a exampleQueue" > # Consume one message from server0 using attached Python consumer. Cluster > will balance the messages to server0 and total amount of messages is > decreased by one. After one message is consumed, session and connection are > closed. Command to consume a message using attached Python consumer: "python > python-qpid-consumer.py -u $username -p $password -H server0 -a exampleQueue" > # Consume one message from server1 using attached Python consumer. Cluster > will balance the messages to server1 but this time total amount of messages > is increased radically. > # If consuming of messages is continued in the manner described above (one > message from one node and then one message from another node), more messages > continue to appear into the queue until broker runs out of memory and crashes. > Technical details considering Python test described above: > * Apache ActiveMQ Artemis 2.10.1 on RHEL 7.7 64bit > * OpenJDK 11.0.5 > * Python 3.4.10 > * Apache Qpid Proton 0.29.0 installed via PIP > In addition to above, following different variations have been tested. > Problem still occurs with all these variations: > * Protocol was changed to STOMP. > * Window-Based Flow Control was turned off. > ** > [https://activemq.apache.org/components/artemis/documentation/latest/flow-control.html] > consumerWindowSize > * Implementation was changed to Java using Apache Qpid JMS library (version > 0.39.0 for producer, version 0.46.0 for consumer). > If this is not a bug, I would be very happy for any solution for this > problem, wheter it is pointing out some mistake in the configuration or in > the consumer, explaining if this is a designed feature or some other > explanation. -- This message was sent by Atlassian Jira (v8.3.4#803005)