[ 
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


Reply via email to