[
https://issues.apache.org/jira/browse/ARTEMIS-5780?focusedWorklogId=994179&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-994179
]
ASF GitHub Bot logged work on ARTEMIS-5780:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 01/Dec/25 22:50
Start Date: 01/Dec/25 22:50
Worklog Time Spent: 10m
Work Description: jbertram commented on code in PR #6093:
URL: https://github.com/apache/activemq-artemis/pull/6093#discussion_r2578978703
##########
artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTStateManager.java:
##########
@@ -112,8 +113,12 @@ public void scanSessions() {
MQTTSessionState state = entry.getValue();
logger.debug("Inspecting session: {}", state);
int sessionExpiryInterval = state.getClientSessionExpiryInterval();
- if (!state.isAttached() && sessionExpiryInterval > 0 &&
state.getDisconnectedTime() + (sessionExpiryInterval * 1000) <
System.currentTimeMillis()) {
- toRemove.add(entry.getKey());
+ if (!state.isAttached()) {
+ if (sessionExpiryInterval == 0) {
Review Comment:
I'm investigating...
Issue Time Tracking
-------------------
Worklog Id: (was: 994179)
Time Spent: 40m (was: 0.5h)
> Ensure full MQTT session clean-up on restart
> ---------------------------------------------
>
> Key: ARTEMIS-5780
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5780
> Project: Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.44.0
> Environment: * OS: Windows Server 2022
> * Artemis: Standalone broker (default {{{}broker.xml{}}}), running as
> Windows Service
> * Java: JDK 17.0.11_9
> * MQTT clients: Eclipse Paho MQTT v5
> ** {{cleanStart = true}}
> ** {{sessionExpiryInterval = 0}}
> ** clientID changes on each start
> ** {{keepAliveInterval = 60}}
> ** Multiple topic subscriptions
> Reporter: Hannes Krennmeir
> Assignee: Justin Bertram
> Priority: Major
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> h3. *Observed Problem*
> MQTT session queues are correctly deleted when clients disconnect normally or
> even crash while the broker is running. However, in a specific sequence, the
> session queues are {*}not removed{*}, and retained session metadata remains
> present.
> h3. *Steps to Reproduce*
> # Start the broker (Artemis 2.44.0).
> # MQTT clients connect with:
> ** cleanStart=true
> ** sessionExpiryInterval=0
> ** unique clientID per connection
> ** multiple subscriptions
> # While the clients are still connected, {*}stop the broker{*}.
> # After the broker has stopped, {*}terminate the clients{*}.
> # Restart the broker.
> h3. *Expected Behavior*
> * All MQTT subscription queues should be removed, because:
> ** {{cleanStart = true}}
> ** {{sessionExpiryInterval = 0}}
> ** clientID is not reused
> * All session-related messages under {{$sys.mqtt.sessions}} should also be
> removed.
> h3. *Actual Behavior*
> * After restarting Artemis, the MQTT connections and sessions are no longer
> present (expected).
> * But the MQTT subscription queues still exist.
> * Messages stored under the system address {{$sys.mqtt.sessions}} also
> remain.
> Enabling
> {code:xml}
> <auto-delete-queues>true</auto-delete-queues>
> <auto-delete-addresses>true</auto-delete-addresses>{code}
> has no effect, because the session queues have the property {*}Auto created =
> false{*}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact