[
https://issues.apache.org/jira/browse/ARTEMIS-2217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16737345#comment-16737345
]
ASF GitHub Bot commented on ARTEMIS-2217:
-----------------------------------------
Github user onlyMIT commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/2491#discussion_r246095670
--- Diff:
artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSession.java
---
@@ -117,14 +118,11 @@ boolean getStopped() {
}
boolean isClean() {
- return isClean;
+ return clean;
}
- void setIsClean(boolean isClean) throws Exception {
- this.isClean = isClean;
- if (isClean) {
- clean();
- }
+ void setClean(boolean clean) throws Exception {
+ this.clean = clean;
--- End diff --
@jbertram in the getSessionState method.Only clear state,not call 'clean()'
method. In fact, the queue is not cleaned up.
I use the code for the ‘paho’ test. The first consumer
"cleanSession=false", using a different clientID to open a producer to send a
message. Close the producer and consumer, use the same clientID and
cleanSession = true" to open the second consumer and find that the consumer
will consume the legacy message in the queue。So I suspect that there is a
problem with the test code.
I am always looking for why my test results will consume the legacy
messages in the queue, and your test results will not。
After seeing your information, I re-reviewed the code and found that the
test code did not have any problems. What is causing my doubts is that because
of your change, when cleanSession=true, only the MQTTSessionState is cleaned
up, the queue still exists, and the legacy messages in the queue are consumed
when resubscribing.
Can close [#2493 ](https://github.com/apache/activemq-artemis/pull/2493) .
I think you need to review your change。
> ‘MQTTSessionState’ in the ‘SESSIONS ConcurrentHashMap’ never be removed
> -----------------------------------------------------------------------
>
> Key: ARTEMIS-2217
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2217
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: MQTT
> Affects Versions: 2.7.0
> Reporter: Shiping Liang
> Priority: Major
>
> ‘MQTTSessionState’ in the ‘SESSIONS ConcurrentHashMap’ should be removed when
> the conusmer (cleanSession is true) connection is closed
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)