Files
MQTTnet/Source/MQTTnet.Tests
c1b46b0ae7 Client: Tolerate late acknowledgement packets (#2078, #2079) (#2247)
When a publish, subscribe or unsubscribe request was cancelled or
timed out client-side, the corresponding awaitable was removed from
the packet dispatcher. A subsequent PUBACK / PUBCOMP / SUBACK /
UNSUBACK arriving from the broker then fell through to the default
case and raised an MqttProtocolViolationException, which forced a
disconnect. Under high publish load (issue #2079) and from multiple
threads (issue #2078) this manifested as sporadic connection drops.

Match these acknowledgement packets explicitly and log a warning
when no awaiter is registered, instead of treating it as a protocol
violation. The connection is now preserved.

Also documents the thread-safety guarantees of IMqttClient: publish,
subscribe, unsubscribe and ping operations are safe to invoke
concurrently. Connect / disconnect must still be coordinated.

Co-authored-by: meisa <meisa@MAFDEL>
Co-authored-by: christian <6939810+chkr1011@users.noreply.github.com>
2026-06-16 20:28:40 +02:00
..
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00
2025-10-21 13:10:09 +02:00