[
https://issues.apache.org/jira/browse/ARTEMIS-3509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram updated ARTEMIS-3509:
------------------------------------
Description:
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.
was:
Web clients connected through WebSocket are randomly disconnected from artemis
broker without notification of the disconnection.
A ConcurrentModificationException is raised;
_[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)_
Configuration:
Artemis (2.16.0) is deployed in Wildfly (24.0.1.Final)
Clients are connected to stomp acceptor:
<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>
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.
> 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: Blocker
>
> 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)