-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MQTT transport getting into connection retry expired state for incorrect trigger (message retransmission) #2070
Comments
We retry the publish if we timeout waiting for the PUBACK. If that fails again, we treat that as a protocol error and terminate the connection.
|
If the retry of PUB timeout due to not receiving a PUBACK, we send the following events:
|
#2078 2078 |
resolved with PR #2078 |
Development Machine, OS, Compiler (and Other Relevant Toolchain Info)
N/A
SDK Version (Please Give Commit SHA if Manually Compiling)
Commit a88ce6d
Protocol
MQTT
Describe the Bug
The MQTT transport seems to get into "Connection Retry Policy Expired" state from more than one trigger event:
The second is unexpected because message re-transmission is not the same as connection retry. One might lead to the other, but it should not get the SDK client into a state where it might not attempt to reconnect.
Please investigate.
Possible offending code:
azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c
Line 2419 in a88ce6d
The only location that should be raising a connection status callback with reconnection expired is this:
azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c
Line 2771 in a88ce6d
The text was updated successfully, but these errors were encountered: