[ 
https://issues.apache.org/jira/browse/ARTEMIS-3351?focusedWorklogId=962303&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-962303
 ]

ASF GitHub Bot logged work on ARTEMIS-3351:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 18/Mar/25 13:17
            Start Date: 18/Mar/25 13:17
    Worklog Time Spent: 10m 
      Work Description: jbertram opened a new pull request, #5562:
URL: https://github.com/apache/activemq-artemis/pull/5562

   (no comment)




Issue Time Tracking
-------------------

            Worklog Id:     (was: 962303)
    Remaining Estimate: 0h
            Time Spent: 10m

> Explicitly disconnect consumers when closing session administratively
> ---------------------------------------------------------------------
>
>                 Key: ARTEMIS-3351
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3351
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.17.0
>         Environment: Using Artemis 2.17.0, out-of-the box installation, 
> default instance, clean install.
>            Reporter: Costas Stergiou
>            Assignee: Justin Bertram
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When a session is closed from the Management console (_Sessions_ tab -> 
> _Close_ button), the consumer never gets notified. 
> Bug is reproducible with JMS and Core. It happens if the consumer loops in a 
> _receive(timeout)_ or _receiveNoWait()._ It also happens when the 
> _setMessageListener()_ has been called for callback-style reception.
> To reproduce:
>  # create a consumer (JMS or Core)
>  # use a thread to loop indefinitely using _consumer.receive(1000);_
>  # create a producer, send messages, verify it all works 
>  # from the Management Console, kill/close the session corresponding to the 
> consumer.
>  # The consumer.receive*() method never returns after the session is closed. 
> If using the _setMessageListener_() no more callbacks occur when new messages 
> arrive. No exception thrown whatsoever, nothing reported in 
> _connection.setExceptionListener()_
> A quick look at the code show the thread waiting on this stack:
> {code:java}
> wait:-1, Object (java.lang)
> receive:267, ClientConsumerImpl (org.apache.activemq.artemis.core.client.impl)
> receiveImmediate:411, ClientConsumerImpl 
> (org.apache.activemq.artemis.core.client.impl)
> getMessage:211, ActiveMQMessageConsumer 
> (org.apache.activemq.artemis.jms.client)
> receiveNoWait:139, ActiveMQMessageConsumer 
> (org.apache.activemq.artemis.jms.client)
> lambda$createConsumer$0:74, ActiveMQCommon (com.imagetrust.activemq)
> run:-1, ActiveMQCommon$$Lambda$15 (com.imagetrust.activemq)
> call:511, Executors$RunnableAdapter (java.util.concurrent)
> run:266, FutureTask (java.util.concurrent)
> runWorker:1149, ThreadPoolExecutor (java.util.concurrent)
> run:624, ThreadPoolExecutor$Worker (java.util.concurrent)
> run:748, Thread (java.lang) {code}
> Looks like _ClientConsumerImpl::receive_ waits indefinitely (or does an 
> indefinite loop) in line 267:
> {code:java}
> try {
>    wait(toWait); <<< 
> } catch (InterruptedException e) {
>    throw new ActiveMQInterruptedException(e);
> } {code}
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@activemq.apache.org
For additional commands, e-mail: issues-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to