You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (Jira)" <ji...@apache.org> on 2019/11/25 16:57:00 UTC
[jira] [Comment Edited] (ARTEMIS-2560) Duplicate messages created
by cluster lead to OOME crash
[ https://issues.apache.org/jira/browse/ARTEMIS-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16981699#comment-16981699 ]
Justin Bertram edited comment on ARTEMIS-2560 at 11/25/19 4:56 PM:
-------------------------------------------------------------------
Couple of questions:
# Can you specify the exact command you're using to run the Python consumer and producer?
# Are you acknowledging the messages once you receive them?
# How do you determine there are duplicate messages on the queue?
# What's the maximum number of messages you see in the queue?
# Is this just a test case or an actual use-case? I ask because typically a cluster is used to increase overall message throughput via horizontal scaling. Having a single consumer which flip-flops back and forth between nodes consuming a single message is something of a pathological use-case and would certainly not be recommended in production.
was (Author: jbertram):
Can you specify the exact command you're using to run the Python consumer and producer?
> 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 to issue:
> # 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.
> # 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.
> # 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.
> # 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:
> * 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
> 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)