eclipse-paho / paho.mqtt.java

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
https://eclipse.org/paho
Other
2.14k stars 887 forks source link

Invalid Packet Type #1030

Open realdognose opened 10 months ago

realdognose commented 10 months ago

After some time of usage, the Pharo-client just disconnects with the error:

relates to REASON_CODE_INVALID_MESSAGE

Paket nicht erkannt (32108)
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:31)
at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:99)
at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:137)

Restarting the application immediately produces the same error again, only restarting the broker helps (for some time)

So, apparently the broker is sending "something" invalid there.

However, this exception can't be handled code-wise (from the app) because paho itself decides that this is a non-recoverable error and goes into stop-state. at:

catch (MqttException ex) {
    //@TRACE 856=Stopping, MQttException
    log.fine(CLASS_NAME,methodName,"856",null,ex);
    synchronized (lifecycle) {
        target_state = State.STOPPED;
    }
    // Token maybe null but that is handled in shutdown
    clientComms.shutdownConnection(token, ex);
}

Any Workarounds to "reject / ignore" invalid messages? Other MQTT-Clients are just working fine at the same time.