You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Luigi Leoni (Jira)" <ji...@apache.org> on 2022/03/03 18:21:00 UTC

[jira] [Comment Edited] (ARTEMIS-3509) STOMP Websocket client disconnected after ConcurrentModificationException in Broker

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

Luigi Leoni edited comment on ARTEMIS-3509 at 3/3/22, 6:20 PM:
---------------------------------------------------------------

Hi all, same issue here on 2.16.0,2.19.0,2.20.0

On a test using 2-3 clients stomp subscribed to a topic (with retroactive and last value), randomly appears the same error reported  by other users:
{code:java}
2022-03-03 10:51:55,299 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=1214893, filter=null, binding=LocalQueueBinding [address=/topic/testTopic, queue=QueueImpl[name=8f3257c4-9ad7-11ec-a207-005056a4b6a2, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=2381ce67-9332-11ec-a207-005056a4b6a2], temp=true]@14456cca, filter=null, name=8f3257c4-9ad7-11ec-a207-005056a4b6a2, clusterName=8f3257c4-9ad7-11ec-a207-005056a4b6a22381ce67-9332-11ec-a207-005056a4b6a2]], message=HolderReference@3b4125d8[ref=Reference[1106275]:RELIABLE:AMQPStandardMessage( [durable=true, messageID=1106275, address=$.artemis.internal./topic/testTopic.address.retro, size=1775, applicationProperties={item_key=236c4829-85a5-4405-aa82-d225bf2b2efa, timestamp=1646228931197}, properties=Properties{messageId=ID:6dd9b4e7-851e-4c5f-97b3-30ecd57e08a3:1:2:2-107, userId=null, to='$.artemis.internal./topic/testTopic.address.retro', subject='null', replyTo='null', correlationId=null, contentType=null, contentEncoding=null, absoluteExpiryTime=Fri Mar 04 14:48:51 CET 2022, creationTime=Wed Mar 02 14:48:51 CET 2022, groupId='null', groupSequence=null, replyToGroupId='null'}, extraProperties = TypedProperties[_AMQ_ORIG_QUEUE=$.artemis.internal./topic/testTopic.divert.retro,_AMQ_AD=$.artemis.internal./topic/testTopic.address.retro,_AMQ_ORIG_ADDRESS=/topic/testTopic,_AMQ_ORIG_MESSAGE_ID=1106274]]]: java.util.ConcurrentModificationException
        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043) [java.base:]
        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997) [java.base:]
        at org.apache.activemq.artemis.core.server.impl.RefsOperation.afterCommit(RefsOperation.java:179)
        at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.afterCommit(TransactionImpl.java:579)
        at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.access$100(TransactionImpl.java:40){code}
 

Error random occurs, unpredictable and unable to find a way to reproduce.

When this exception raised, client stop receiving new messages sent on topic/testTopic but no disconnection occurs, the same client continues receive messages from other topics subscribed.

 

 

 


was (Author: JIRAUSER286107):
Hi all, same issue here on 2.16.0,2.19.0,2.20.0

On a test using 2-3 clients stomp subscribed to a topic (with retroactive and last value), randomly appears the same error reported  by other users:
{code:java}
2022-03-03 10:51:55,299 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=1214893, filter=null, binding=LocalQueueBinding [address=/topic/testTopic, queue=QueueImpl[name=8f3257c4-9ad7-11ec-a207-005056a4b6a2, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=2381ce67-9332-11ec-a207-005056a4b6a2], temp=true]@14456cca, filter=null, name=8f3257c4-9ad7-11ec-a207-005056a4b6a2, clusterName=8f3257c4-9ad7-11ec-a207-005056a4b6a22381ce67-9332-11ec-a207-005056a4b6a2]], message=HolderReference@3b4125d8[ref=Reference[1106275]:RELIABLE:AMQPStandardMessage( [durable=true, messageID=1106275, address=$.artemis.internal./topic/testTopic.address.retro, size=1775, applicationProperties={item_key=236c4829-85a5-4405-aa82-d225bf2b2efa, timestamp=1646228931197}, properties=Properties{messageId=ID:6dd9b4e7-851e-4c5f-97b3-30ecd57e08a3:1:2:2-107, userId=null, to='$.artemis.internal./topic/testTopic.address.retro', subject='null', replyTo='null', correlationId=null, contentType=null, contentEncoding=null, absoluteExpiryTime=Fri Mar 04 14:48:51 CET 2022, creationTime=Wed Mar 02 14:48:51 CET 2022, groupId='null', groupSequence=null, replyToGroupId='null'}, extraProperties = TypedProperties[_AMQ_ORIG_QUEUE=$.artemis.internal./topic/testTopic.divert.retro,_AMQ_AD=$.artemis.internal./topic/testTopic.address.retro,_AMQ_ORIG_ADDRESS=/topic/testTopic,_AMQ_ORIG_MESSAGE_ID=1106274]]]: java.util.ConcurrentModificationException
        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043) [java.base:]
        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997) [java.base:]
        at org.apache.activemq.artemis.core.server.impl.RefsOperation.afterCommit(RefsOperation.java:179)
        at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.afterCommit(TransactionImpl.java:579)
        at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.access$100(TransactionImpl.java:40){code}
 

Error random occurs, unpredictable and unable to find a way to reproduce.

When this exception raised, client stop receiving new messages but no disconnection occurs, the same client continues receive messages from other topic subscribed.

 

 

 

> STOMP Websocket client disconnected after ConcurrentModificationException in Broker
> -----------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-3509
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3509
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.16.0
>            Reporter: Elodie Vandromme
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> Web clients connected through WebSocket are randomly disconnected from artemis broker without notification of the disconnection.
> A ConcurrentModificationException is raised;
> {noformat}
> [2021-09-28 10:26:53,591] - [WILDFLY] - [WARN ] - [Thread-11 ([ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@444dc7ba|mailto:ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@444dc7ba])] - [org.apache.activemq.artemis.core.server] : *AMQ222151: removing consumer which did not handle a message*, consumer=ServerConsumerImpl [id=1990, filter=null, binding=LocalQueueBinding [address=jms.topic.defended_assetFull, queue=QueueImpl[name=d1586796-2035-11ec-8d2e-00505689a76b, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=2f00c36f-2034-11ec-8d2e-00505689a76b], temp=true]@4180826b, filter=null, name=d1586796-2035-11ec-8d2e-00505689a76b, clusterName=d1586796-2035-11ec-8d2e-00505689a76b2f00c36f-2034-11ec-8d2e-00505689a76b]], message=Reference[2019]:RELIABLE:CoreMessage[messageID=2019,durable=true,userID=d5e2d1c3-2035-11ec-8d2e-00505689a76b,priority=4, timestamp=Tue Sep 28 10:26:53 CEST 2021,expiration=0, durable=true, address=jms.topic.defended_assetFull,size=6520,properties=TypedProperties[__AMQ_CID=f9eab79a-2034-11ec-8d2e-00505689a76b,_AMQ_ROUTING_TYPE=0]]@155890432: java.util.ConcurrentModificationException
>                     at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
>                     at java.util.ArrayList$Itr.next(ArrayList.java:859)
>                     at org.apache.activemq.artemis.core.server.impl.RefsOperation.afterCommit(RefsOperation.java:179)
>                     at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.afterCommit(TransactionImpl.java:579)
>                     at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.access$100(TransactionImpl.java:40)
>                     at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl$2.done(TransactionImpl.java:322)
>                     at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:190)
>                     at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.executeOnCompletion(OperationContextImpl.java:128)
>                     at org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.afterCompleteOperations(AbstractJournalStorageManager.java:321)
>                     at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.commit(TransactionImpl.java:313)
>                     at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.commit(TransactionImpl.java:264)
>                     at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.commit(ServerSessionImpl.java:1284)
>                     at org.apache.activemq.artemis.core.protocol.stomp.StompSession$1.run(StompSession.java:164)
>                     at org.apache.activemq.artemis.core.protocol.stomp.StompSession.afterDelivery(StompSession.java:116)
>                     at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:511)
>                     at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:3744)
>                     at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:3048)
>                     at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2400(QueueImpl.java:125)
>                     at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:4119)
>                     at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>                     at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>                     at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
>                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>                     at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
> {noformat}
> Artemis (2.16.0) is deployed in Wildfly (24.0.1.Final)
> Clients are connected to stomp acceptor:
> {code:xml}
> <acceptor name="stomp-over-ws" factory-class="org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory">
>    <param name="host" value="0.0.0.0" />
>    <param name="protocols" value="STOMP" />
>    <param name="port" value="61614" />
> </acceptor>
> {code}
> Bug is random but is reproduced quite often with a full scenario we have (on one topic or another) so we are able to reproduce it and add logs if necessary.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)