Daniel Martin created ARTEMIS-4542:
--------------------------------------
Summary: "Error disconnecting client" after connecting and
disconnecting a few times
Key: ARTEMIS-4542
URL: https://issues.apache.org/jira/browse/ARTEMIS-4542
Project: ActiveMQ Artemis
Issue Type: Bug
Reporter: Daniel Martin
During some local tests which involved manually disconnecting and reconnecting
one MQTT client, at one point the ability to (re)connect was lost, while the
MQTT server kept printing the following message:
{noformat}
2023-12-19 16:09:35,105 ERROR [org.apache.activemq.artemis.core.protocol.mqtt]
AMQ834002: Error processing control packet:
MqttConnectMessage[fixedHeader=MqttFixedHeader[messageType=CONNECT,
isDup=false, qosLevel=AT_MOST_ONCE, isRetain=false, remainingLength=81],
variableHeader=MqttConnectVariableHeader[name=MQTT, version=5,
hasUserName=true, hasPassword=true, isWillRetain=false, isWillFlag=false,
isCleanSession=false, keepAliveTimeSeconds=60],
payload=MqttConnectPayload[clientIdentifier=99778aca-86a8-4b3e-84b9-74778c77e0e1,
willTopic=null, willMessage=null, userName=artemis, password=[...]]]
java.lang.IllegalStateException: AMQ850000: Unable to store MQTT state within
given timeout: 5000ms
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.storeSessionState(MQTTStateManager.java:177)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.getSessionState(MQTTStateManager.java:130)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.getSessionState(MQTTConnectionManager.java:206)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.connect(MQTTConnectionManager.java:71)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.handleConnect(MQTTProtocolHandler.java:267)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.act(MQTTProtocolHandler.java:159)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32)
~[artemis-commons-2.31.0.jar:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[artemis-commons-2.31.0.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.31.0.jar:?]
2023-12-19 16:09:40,105 ERROR [org.apache.activemq.artemis.core.protocol.mqtt]
AMQ834001: Error disconnecting client.
java.lang.IllegalStateException: AMQ850000: Unable to store MQTT state within
given timeout: 5000ms
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.storeSessionState(MQTTStateManager.java:177)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.removeSubscriptions(MQTTSubscriptionManager.java:291)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.clean(MQTTSubscriptionManager.java:368)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSession.clean(MQTTSession.java:233)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSession.stop(MQTTSession.java:136)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.disconnect(MQTTConnectionManager.java:186)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.disconnect(MQTTProtocolHandler.java:282)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.act(MQTTProtocolHandler.java:183)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32)
~[artemis-commons-2.31.0.jar:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[artemis-commons-2.31.0.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.31.0.jar:?]
2023-12-19 16:09:45,106 ERROR [org.apache.activemq.artemis.core.protocol.mqtt]
AMQ834001: Error disconnecting client.
java.lang.IllegalStateException: AMQ850000: Unable to store MQTT state within
given timeout: 5000ms
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.storeSessionState(MQTTStateManager.java:177)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.removeSubscriptions(MQTTSubscriptionManager.java:291)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSubscriptionManager.clean(MQTTSubscriptionManager.java:368)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSession.clean(MQTTSession.java:233)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTSession.stop(MQTTSession.java:136)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.disconnect(MQTTConnectionManager.java:186)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.disconnect(MQTTProtocolHandler.java:282)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.disconnect(MQTTProtocolHandler.java:272)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.act(MQTTProtocolHandler.java:198)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32)
~[artemis-commons-2.31.0.jar:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[artemis-commons-2.31.0.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.31.0.jar:?]
2023-12-19 16:09:45,109 ERROR [org.apache.activemq.artemis.core.protocol.mqtt]
AMQ834002: Error processing control packet:
MqttConnectMessage[fixedHeader=MqttFixedHeader[messageType=CONNECT,
isDup=false, qosLevel=AT_MOST_ONCE, isRetain=false, remainingLength=81],
variableHeader=MqttConnectVariableHeader[name=MQTT, version=5,
hasUserName=true, hasPassword=true, isWillRetain=false, isWillFlag=false,
isCleanSession=false, keepAliveTimeSeconds=60],
payload=MqttConnectPayload[clientIdentifier=dc6b05c6-c09f-4d41-976b-70ae7017d1e3,
willTopic=null, willMessage=null, userName=artemis, password=[...]]]
java.lang.IllegalStateException: AMQ850000: Unable to store MQTT state within
given timeout: 5000ms
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.storeSessionState(MQTTStateManager.java:177)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTStateManager.getSessionState(MQTTStateManager.java:130)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.getSessionState(MQTTConnectionManager.java:206)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTConnectionManager.connect(MQTTConnectionManager.java:71)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.handleConnect(MQTTProtocolHandler.java:267)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at
org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.act(MQTTProtocolHandler.java:159)
~[artemis-mqtt-protocol-2.31.0.jar:2.31.0]
at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:32)
~[artemis-commons-2.31.0.jar:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[artemis-commons-2.31.0.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.31.0.jar:?]
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)