[
https://issues.apache.org/jira/browse/ARTEMIS-5337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jelle Smits updated ARTEMIS-5337:
---------------------------------
Description:
*Issue*
In my setup where I have numerous consumers on explicitly defined queues (e.g.
`queue.eventA.send, `queue.eventB.send`). These queues are auto-created and
also have auto-delete turned on. Recently I added a wildcard consumer on
`queue.*.send`, and noticed that after restarts of part of my applications, I
occasionally get a consumer that _should_ be consuming on the specific queues
(e.g. `queue.eventA.send`) suddenly starts consuming from `queue.*.send`
instead, giving that queue 2 consumers instead of the expected 1.
*Reproduction*
I'm able to consistently reproduce the issue, but it's difficult to share as it
relies on some Docker containers with my applications. High-over, it should be
easily reproducible in a testcase as well:
# Start a clean environment that initializes the following consumers (in any
order):
## queue.eventA.send
## queue.eventB.send
## queue.*.send
# Stop the consumers on `queue.eventA.send` and `queue.eventB.send`.
# Wait until the queues are auto-removed as the queues now have 0 consumers
(and 0 messages) (i.e. AMQ224112 logging appears)
# Start the consumers again
## The queues won't be auto-created now
## The consumers will start consuming from the `queue.*.send` queue -> its
consumer count will raise from 1 to 3
If you were to do the same but the 'eventB' queue is not auto-deleted, that
consumer will work just fine.
To me, it feels like some internal divert remains when the queue is
auto-deleted, causing it to not be created again and therefore messing up how
my messages are consumed. Is this expected behavior?
My (relevant) address settings are:
* Address full policy = Page
* Auto create addresses / queues = true
* Auto delete addresses / queus = true -> when I switch this to false I can
prevent the issue from occuring
* Auto create dead letter & expiry resources = false
* Routing type: Anycast
* Address pattern: queue.#
I tested on the 2 artemis versions mentioned.
was:
*Issue*
In my setup where I have numerous consumers on explicitly defined queues (e.g.
`queue.eventA.send, `queue.eventB.send`). These queues are auto-created and
also have auto-delete turned on. Recently I added a wildcard consumer on
`queue.*.send`, and noticed that after restarts of part of my applications, I
occasionally get a consumer that _should_ be consuming on the specific queues
(e.g. `queue.eventA.send`) suddenly starts consuming from `queue.*.send`
instead, giving that queue 2 consumers instead of the expected 1.
*Reproduction*
I'm able to consistently reproduce the issue, but it's difficult to share as it
relies on some Docker containers with my applications. High-over, it should be
easily reproducible in a testcase as well:
# Start a clean environment that initializes the following consumers (in any
order):
## queue.eventA.send
## queue.eventB.send
## queue.*.send
# Stop the consumers on `queue.eventA.send` and `queue.eventB.send`.
# Wait until the queues are auto-removed as the queues now have 0 consumers
(and 0 messages) (i.e. AMQ224112 logging appears)
# Start the consumers again
## The queues won't be auto-created now
## The consumers will start consuming from the `queue.*.send` queue -> its
consumer count will raise from 1 to 3
If you were to do the same but the 'eventB' queue is not auto-deleted, that
consumer will work just fine.
To me, it feels like some internal divert remains when the queue is
auto-deleted, causing it to not be created again and therefore messing up how
my messages are consumed. Is this expected behavior?
My (relevant) address settings are:
* Address full policy = Page
* Auto create addresses / queues = true
* Auto delete addresses / queus = true -> when I switch this to false I can
prevent the issue from occuring
* Auto create dead letter & expiry resources = false
* Routing type: Anycast
* Address pattern: queue.#
I tested on the 2 artemis versions mentioned.
> Consumer of a qualified queue starts receiving messages from a wildcard queue
> -----------------------------------------------------------------------------
>
> Key: ARTEMIS-5337
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5337
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: AMQP, Broker
> Affects Versions: 2.31.2, 2.38.0
> Reporter: Jelle Smits
> Priority: Major
>
> *Issue*
> In my setup where I have numerous consumers on explicitly defined queues
> (e.g. `queue.eventA.send, `queue.eventB.send`). These queues are auto-created
> and also have auto-delete turned on. Recently I added a wildcard consumer on
> `queue.*.send`, and noticed that after restarts of part of my applications, I
> occasionally get a consumer that _should_ be consuming on the specific queues
> (e.g. `queue.eventA.send`) suddenly starts consuming from `queue.*.send`
> instead, giving that queue 2 consumers instead of the expected 1.
> *Reproduction*
> I'm able to consistently reproduce the issue, but it's difficult to share as
> it relies on some Docker containers with my applications. High-over, it
> should be easily reproducible in a testcase as well:
> # Start a clean environment that initializes the following consumers (in any
> order):
> ## queue.eventA.send
> ## queue.eventB.send
> ## queue.*.send
> # Stop the consumers on `queue.eventA.send` and `queue.eventB.send`.
> # Wait until the queues are auto-removed as the queues now have 0 consumers
> (and 0 messages) (i.e. AMQ224112 logging appears)
> # Start the consumers again
> ## The queues won't be auto-created now
> ## The consumers will start consuming from the `queue.*.send` queue -> its
> consumer count will raise from 1 to 3
> If you were to do the same but the 'eventB' queue is not auto-deleted, that
> consumer will work just fine.
>
> To me, it feels like some internal divert remains when the queue is
> auto-deleted, causing it to not be created again and therefore messing up how
> my messages are consumed. Is this expected behavior?
>
> My (relevant) address settings are:
> * Address full policy = Page
> * Auto create addresses / queues = true
> * Auto delete addresses / queus = true -> when I switch this to false I can
> prevent the issue from occuring
> * Auto create dead letter & expiry resources = false
> * Routing type: Anycast
> * Address pattern: queue.#
>
> I tested on the 2 artemis versions mentioned.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact