ARTEMIS-5780 ensure full MQTT session clean-up on restart #6093
+123
−29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit ensures that MQTT 5 sessions using a session expiry interval of 0 are cleaned up after a broker restart. This includes:
To be clear, we can't simply inspect the session expiry interval when the session is created and make subscription queues non-durable because the session expiry interval can be changed on the session with the DISCONNECT packet at which point it would be impossible to potentially make the queue durable and persist all the messages.