activemq-artemis/artemis-protocols
Justin Bertram 3c058e98f1 ARTEMIS-3622 MQTT can deadlock on client cxn/discxn
This commit fixes the deadlock described on ARTEMIS-3622 by moving the
synchronization "up" a level from the MQTTSession to the
MQTTConnectionManager. It also eliminates the synchronization on the
MQTTSessionState in the MQTTConnectionManager because it's no longer
needed. This change should not only eliminate the deadlock, but improve
performance relatively as well.

There is no test associated with this commit as I wasn't able to
reproduce the deadlock with any kind of straight-forward test. There was
a test linked on the Jira, but it involved intrusive and fragile
scaffolding and wasn't ultimately tenable. That said, I did test this
fix with that test and it was successful. In any case, I think static
analysis should be sufficient here as the changes are pretty
straight-forward.
2024-05-21 15:15:44 +01:00
..
artemis-amqp-protocol ARTEMIS-4774 Fixing PageCounters out of sync after AckMnager retries 2024-05-17 09:47:34 -04:00
artemis-hornetq-protocol [maven-release-plugin] prepare for next development iteration 2024-03-19 15:22:47 -05:00
artemis-hqclient-protocol [maven-release-plugin] prepare for next development iteration 2024-03-19 15:22:47 -05:00
artemis-jakarta-openwire-protocol [maven-release-plugin] prepare for next development iteration 2024-03-19 15:22:47 -05:00
artemis-mqtt-protocol ARTEMIS-3622 MQTT can deadlock on client cxn/discxn 2024-05-21 15:15:44 +01:00
artemis-openwire-protocol ARTEMIS-4740 reduce unnecessary boxing 2024-04-27 09:36:05 -05:00
artemis-stomp-protocol ARTEMIS-4740 reduce unnecessary boxing 2024-04-27 09:36:05 -05:00
pom.xml [maven-release-plugin] prepare for next development iteration 2024-03-19 15:22:47 -05:00