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

ASF subversion and git services commented on ARTEMIS-4242:
----------------------------------------------------------

Commit 114b88a12060278808e61ed4f3ea07d6dc32cad3 in activemq-artemis's branch 
refs/heads/main from Robbie Gemmell
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=114b88a120 ]

ARTEMIS-4242, ARTEMIS-4082: isolate testNonBlockingAckPerf to its own queues to 
stop poisoning testDupsOKAcknowledgeQueue


> closing session with recent 'async acks' can lead to exceptions from apparent 
> consumer cleanup race
> ---------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4242
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4242
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.28.0
>            Reporter: Robbie Gemmell
>            Priority: Major
>
> (Title is a little bit of a guess based on what a test is doing, the 
> exceptions logged as a result, and the fact it poisoned a subsequent test).
> Closing a session with recent 'async acks' from using option 
> 'blockOnAcknowledge=false' appears to lead to possible exceptions on the 
> broker (snippet later), seemingly from a race between consumer cleanup during 
> this, and processing of the previous acknowledgements.
> AcknowledgementTest.testNonBlockingAckPerf sends messages and then consumes 
> them two seperate queues with 'blockOnAcknowledge=false' and 
> 'blockOnAcknowledge=true' and compares duration. Invariably, it logs 
> stacktraces like below during execution of this test (not obvious from 
> default output, but is when turning on some debug instrumentation of which 
> test is starting/stopping). After this happens, the test that follows would 
> fail due to finding an extra message on a queue (queue1) they both used (this 
> was reported in ARTEMIS-4082 against testDupsOKAcknowledgeQueue).
> Changing AcknowledgementTest.testNonBlockingAckPerf to closely inspect the 
> counts after it is main work is finished, it then fails sporadically as or 
> mroe often than it was causing testDupsOKAcknowledgeQueue to fail.
> Example output during failure in recent run: 
> https://github.com/apache/activemq-artemis/actions/runs/4691971133/jobs/8317110969#step:5:33384
> {noformat}
> [Thread-0 
> (ActiveMQ-remoting-threads-ActiveMQServerImpl::name=localhost-195163481)] 
> 17:20:43,422 WARN  [org.apache.activemq.artemis.core.server] AMQ222061: 
> Client connection failed, clearing up resources for session 
> 855206e2-da1f-11ed-8303-000d3aa462b0
> [Thread-0 
> (ActiveMQ-remoting-threads-ActiveMQServerImpl::name=localhost-195163481)] 
> 17:20:43,430 WARN  [org.apache.activemq.artemis.core.server] AMQ222107: 
> Cleared up resources for session 855206e2-da1f-11ed-8303-000d3aa462b0
> [Thread-7 
> (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@fd46303)]
>  17:20:43,446 ERROR [org.apache.activemq.artemis.core.server] AMQ224016: 
> Caught exception
> org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException: 
> AMQ229028: Consumer 0 doesn't exist on the server
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.findConsumer(ServerSessionImpl.java:1267)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.acknowledge(ServerSessionImpl.java:1234)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onSessionAcknowledge(ServerSessionPacketHandler.java:762)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:302)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32) 
> ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  ~[?:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  ~[?:?]
>       at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
> [Thread-7 
> (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@fd46303)]
>  17:20:43,463 ERROR [org.apache.activemq.artemis.core.server] AMQ224016: 
> Caught exception
> org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException: 
> AMQ229028: Consumer 0 doesn't exist on the server
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.findConsumer(ServerSessionImpl.java:1267)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.acknowledge(ServerSessionImpl.java:1234)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onSessionAcknowledge(ServerSessionPacketHandler.java:762)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:302)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32) 
> ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  ~[?:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  ~[?:?]
>       at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
> [Thread-7 
> (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@fd46303)]
>  17:20:43,470 ERROR [org.apache.activemq.artemis.core.server] AMQ224016: 
> Caught exception
> org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException: 
> AMQ229028: Consumer 0 doesn't exist on the server
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.findConsumer(ServerSessionImpl.java:1267)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.acknowledge(ServerSessionImpl.java:1234)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onSessionAcknowledge(ServerSessionPacketHandler.java:762)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at 
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:302)
>  ~[artemis-server-2.29.0-SNAPSHOT.jar:2.29.0-SNAPSHOT]
>       at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32) 
> ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  ~[?:?]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  ~[?:?]
>       at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.29.0-SNAPSHOT.jar:?]
> ..etc etc etc..
> {noformat}



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

Reply via email to