[
https://issues.apache.org/jira/browse/ARTEMIS-2206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16791047#comment-16791047
]
ASF subversion and git services commented on ARTEMIS-2206:
----------------------------------------------------------
Commit 971f673c602f859f342e22afe988c71687f754b6 in activemq-artemis's branch
refs/heads/master from onlyMIT
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=971f673 ]
ARTEMIS-2206 The MQTT consumer reconnection caused the queue to not be cleared,
and caused Artemis broker to throw a NullPointerException.
When the MQTT consumer client (cleanSession property set to true) reconnected,
there are certain probabilities that these two bugs will occur.
This is because the MQTT consumer client thinks that its connection has been
disconnected and triggers reconnection, but the MQTT connection is still alive
at Artemis broker. This bug occurs when new and old connections occur while
operating the same queue for unsafe behavior.
> The MQTT consumer reconnection caused the queue to not be cleared and throw a
> NullPointerException exception
> ------------------------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-2206
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2206
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: MQTT
> Affects Versions: 2.6.3
> Environment: # Use 10,000 (9 thousand senders, 1 thousand consumers)
> MQTT connection on one server to test Artemis, set the 'cleanSession'
> property to true;
> # MQTT client: paho 1.2.0;
> # Server: CPU Cores:32, Mem:64G, SSD:250G, HDD:1T
> Reporter: Shiping Liang
> Priority: Major
> Attachments: image-2018-12-18-18-28-59-540.png
>
> Time Spent: 2h 40m
> Remaining Estimate: 0h
>
> *Issue 1*
> Artemis broker has the following exception log:
> {{[Thread-0
> (ActiveMQ-remoting-threads-ActiveMQServerImpl::serverUUID=fb358579-feb3-11e8-bc7c-141877a7fd13-1409545055)]
> 17:27:59,035 WARN [org.apache.activemq.artemis.utils.actors.OrderedExecutor]
> null: java.lang.NullPointerException at
> org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolManager.isClientConnected(MQTTProtocolManager.java:182)
> [:] at
> org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.disconnect(MQTTConnectionManager.java:150)
> [:] at
> org.apache.activemq.artemis.core.protocol.mqtt.MQTTFailureListener.connectionFailed(MQTTFailureListener.java:37)
> [:] at
> org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnection.fail(MQTTConnection.java:147)
> [:] at
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.issueFailure(RemotingServiceImpl.java:561)
> [:] at
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl.connectionDestroyed(RemotingServiceImpl.java:542)
> [:] at
> org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptor$Listener.connectionDestroyed(NettyAcceptor.java:858)
> [:] at
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.lambda$channelInactive$0(ActiveMQChannelHandler.java:83)
> [:] 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:66)
> [:] at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [rt.jar:1.8.0_101] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [rt.jar:1.8.0_101] at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
> [:]}}
> *Issue 2*
> After closing all client connections, 64 queues were not cleaned up。
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)