Details
-
Bug
-
Status: Resolved
-
P1
-
Resolution: Fixed
-
2.19.0, 2.20.0
-
None
Description
The used FuseSource MQTT library only supports (outdated) MQTT version 3.1. According to MQTT v3.1 protocol (https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#connect) a clientId must be <= 23 characters, otherwise the connection must be rejected by the server. However, in MqttIO (https://github.com/apache/beam/blob/master/sdks/java/io/mqtt/src/main/java/org/apache/beam/sdk/io/mqtt/MqttIO.java#L223) the clientId is always appended with a random UUID which itself is longer than 23 characters. This implies that establishing a connection this way should never work.
FYI: If you don't encounter this error when testing it may be because some servers do not correctly implement the standard and accept connections with a clientId longer than 23 characters (e.g. HiveMQ) or crash and/or don't respond to such connection requests at all.
Attachments
Issue Links
- links to