You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Clebert Suconic (Jira)" <ji...@apache.org> on 2022/11/10 01:13:00 UTC

[jira] [Commented] (ARTEMIS-4089) Auto-deleted queue with active producer leaves producer disabled (or impotent)

    [ https://issues.apache.org/jira/browse/ARTEMIS-4089?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631371#comment-17631371 ] 

Clebert Suconic commented on ARTEMIS-4089:
------------------------------------------

I wouldn't use auto-creation if you can't guarantee you are keeping a consumer open on your queue for most of the time.

We do have a scan period where we would allow a consumer to be out. 

It happens that a producer is a client object only... and the client will query for the queue and create it when the client producer is created.


If we checked for the queue creation on every message send, the performance would be poor as we would need to check the queue every time. (It would be better if you created a producer on every message you send if that's your use case).


I will keep this open for a while as I will think if there is anything better we can do about this.

> Auto-deleted queue with active producer leaves producer disabled (or impotent)
> ------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4089
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4089
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: ActiveMQ-Artemis-Native
>    Affects Versions: 2.26.0
>            Reporter: john lilley
>            Assignee: Clebert Suconic
>            Priority: Major
>         Attachments: image-2022-11-09-14-33-14-216.png, image-2022-11-09-14-33-54-881.png, image-2022-11-09-14-35-52-506.png, image-2022-11-09-14-36-13-274.png, image-2022-11-09-14-36-41-631.png, image-2022-11-09-14-40-30-793.png, scratch.zip
>
>
> DISCLAIMER: this bug happens sometimes and then goes away, even using the simple test case I've attached.  I would love to know why or how it comes and goes, but I just don't know.  It has been happening for weeks, I was able to reproduce this morning using the attached project and procedure, and now ... everything works just fine.  I'm pretty sure this isn't a false alarm, because we tracked down bugs in our software to this phenomenon, and everything got better when we disabled auto-delete of our queues.  Anyway, here goes:
> Configure Artemis to auto-delete queues.
>  * there is a queue producer and queue consumer running in different processes
>  * the producer sends a few messages, and the consumer drains the queue
>  * quit the consumer process
>  * enough time elapses that Artemis auto-deletes the queue
>  * start the consumer process
>  * send a few messages from the producer
> Expected: queue is re-created and consumer is delivered messages
> Actual: producer send() fails silently, queue is not re-created, consumer sees no messages
> To reproduce, build the attached maven project in scratch.zip.  The version of java doesn't seem to matter - at least, Java 8 and 17 are the same.
> In separate consoles run
> {{java -cp target/scratch-10.0.1-SNAPSHOT-shaded.jar net.redpoint.test.TestSend}}
> {{java -cp target/scratch-10.0.1-SNAPSHOT-shaded.jar net.redpoint.test.TestConsume}}
> You will see something like
> !image-2022-11-09-14-33-14-216.png!
> Hit enter on the sending console, and it will send a message (or two, on Windows)
> !image-2022-11-09-14-33-54-881.png!
> Ctrl-C to kill the consumer but _leave the producer running_
> Bring up the Artemis console and browse queues
> !image-2022-11-09-14-36-41-631.png!
> Wait just long enough for the Artemis console to show that "myqueue" has been auto-deleted
> !image-2022-11-09-14-40-30-793.png!
> (or wait until the artemis command-line window logs that the queue was deleted)
> Start the consumer again.
> Hit Enter on the producer window.  It will send a message.
> But.. the queue is not recreated, and the send() fails silently.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)