You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Ismaël Mejía (Jira)" <ji...@apache.org> on 2020/04/09 11:43:00 UTC

[jira] [Resolved] (BEAM-9647) No MQTT connection possible because clientId is too long

     [ https://issues.apache.org/jira/browse/BEAM-9647?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ismaël Mejía resolved BEAM-9647.
--------------------------------
    Fix Version/s: 2.21.0
       Resolution: Fixed

> No MQTT connection possible because clientId is too long
> --------------------------------------------------------
>
>                 Key: BEAM-9647
>                 URL: https://issues.apache.org/jira/browse/BEAM-9647
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-mqtt
>    Affects Versions: 2.19.0
>            Reporter: Michael Jacoby
>            Assignee: Michael Jacoby
>            Priority: Critical
>             Fix For: 2.21.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)