Wish Update MQTT Moquette

jmon

Well-Known Member
Licensed User
Longtime User
Hello,

With jMQTT I get often these errors:
ERROR {org.wso2.andes.kernel.disruptor.delivery.DeliveryEventHandler} - Unexpected error while delivering message. Message id 39754882760572930 {org.wso2.andes.kernel.disruptor.delivery.DeliveryEventHandler}
java.lang.RuntimeException: Can't find a ConnectionDescriptor for client <subscriberidCL04> in cache <{}>

That doesn't crash my app, but that messes up the queue of messages. I see that this bug has been fixed in the latest version of Moquette (if I understand correctly their bug tracking system):
https://wso2.org/jira/browse/IOTS-227

message dated Jan 15th, 2017:
Ayyoob Hamza added a comment - 15/Jan/17 12:58 PM
This is been fixed in the latest pack

StatusIn Progress [ 3 ]Resolved [ 5 ]
Fix Version/s3.0.0 - RC1 [ 12572 ]
ResolutionFixed [ 1 ]

Could we update Moquette to the latest version?

Thank you
Jmon.
 

jmon

Well-Known Member
Licensed User
Longtime User
Hi managed to capture a complete stacktrace (from B4J):
...
An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@36f758a8 for session [clientID: CLIENT_32]org.eclipse.moquette.server.netty.NettyChannel@113a83ec
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@2ef3401f for session [clientID: S0]org.eclipse.moquette.server.netty.NettyChannel@6b9383ce
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@58bec966 for session [clientID: CLIENT_34]org.eclipse.moquette.server.netty.NettyChannel@114da659
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@250aefd7 for session [clientID: CLIENT_31]org.eclipse.moquette.server.netty.NettyChannel@5270854b
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@7c2b839a for session [clientID: CLIENT_33]org.eclipse.moquette.server.netty.NettyChannel@288d28
Serious error processing the message org.eclipse.moquette.proto.messages.PublishMessage@72aebead for session [clientID: CLIENT_35]org.eclipse.moquette.server.netty.NettyChannel@2422376e
Apr 06, 2017 10:59:14 AM com.lmax.disruptor.FatalExceptionHandler handleEventException
SEVERE: Exception processing: 1311 org.eclipse.moquette.spi.impl.ValueEvent@4b54723
java.lang.RuntimeException: Can't find a ConnectionDescriptor for client <CLIENT_32> in cache <{CLIENT_3=ConnectionDescriptor{m_clientID=CLIENT_3, m_cleanSession=true}, CLIENT_2=ConnectionDescriptor{m_clientID=CLIENT_2, m_cleanSession=true}, CLIENT_5=ConnectionDescriptor{m_clientID=CLIENT_5, m_cleanSession=true}, CLIENT_4=ConnectionDescriptor{m_clientID=CLIENT_4, m_cleanSession=true}, CLIENT_7=ConnectionDescriptor{m_clientID=CLIENT_7, m_cleanSession=true}, CLIENT_6=ConnectionDescriptor{m_clientID=CLIENT_6, m_cleanSession...
rue}, CLIENT_61=ConnectionDescriptor{m_clientID=CLIENT_61, m_cleanSession=true}, CLIENT_55=ConnectionDescriptor{m_clientID=CLIENT_55, m_cleanSession=true}, CLIENT_11=ConnectionDescriptor{m_clientID=CLIENT_11, m_cleanSession=true}, CLIENT_12=ConnectionDescriptor{m_clientID=CLIENT_12, m_cleanSession=true}, CLIENT_56=ConnectionDescriptor{m_clientID=CLIENT_56, m_cleanSession=true}, CLIENT_53=ConnectionDescriptor{m_clientID=CLIENT_53, m_cleanSession=true}, CLIENT_54=ConnectionDescriptor{m_clientID=CLIENT_54, m_cleanSession=true...
ptor{m_clientID=CLIENT_58, m_cleanSession=true}, CLIENT_19=ConnectionDescriptor{m_clientID=CLIENT_19, m_cleanSession=true}, CLIENT_17=ConnectionDescriptor{m_clientID=CLIENT_17, m_cleanSession=true}, CLIENT_18=ConnectionDescriptor{m_clientID=CLIENT_18, m_cleanSession=true}, CLIENT_1=ConnectionDescriptor{m_clientID=CLIENT_1, m_cleanSession=true}, CLIENT_51=ConnectionDescriptor{m_clientID=CLIENT_51, m_cleanSession=true}, CLIENT_52=ConnectionDescriptor{m_clientID=CLIENT_52, m_cleanSession=true}, CLIENT_50=ConnectionDescriptor{...
Session=true}, CLIENT_47=ConnectionDescriptor{m_clientID=CLIENT_47, m_cleanSession=true}, S0=ConnectionDescriptor{m_clientID=S0, m_cleanSession=true}, CLIENT_40=ConnectionDescriptor{m_clientID=CLIENT_40, m_cleanSession=true}, CLIENT_41=ConnectionDescriptor{m_clientID=CLIENT_41, m_cleanSession=true}, CLIENT_34=ConnectionDescriptor{m_clientID=CLIENT_34, m_cleanSession=true}, CLIENT_31=ConnectionDescriptor{m_clientID=CLIENT_31, m_cleanSession=true}, CLIENT_37=ConnectionDescriptor{m_clientID=CLIENT_37, m_cleanSession=true}...
tor{m_clientID=CLIENT_22, m_cleanSession=true}, CLIENT_23=ConnectionDescriptor{m_clientID=CLIENT_23, m_cleanSession=true}, CLIENT_67=ConnectionDescriptor{m_clientID=CLIENT_67, m_cleanSession=true}, CLIENT_64=ConnectionDescriptor{m_clientID=CLIENT_64, m_cleanSession=true}, CLIENT_20=ConnectionDescriptor{m_clientID=CLIENT_20, m_cleanSession=true}, CLIENT_21=ConnectionDescriptor{m_clientID=CLIENT_21, m_cleanSession=true}, CLIENT_65=ConnectionDescriptor{m_clientID=CLIENT_65, m_cleanSession=true}, CLIENT_26=ConnectionDescriptor...
nSession=true}}>
at org.eclipse.moquette.spi.impl.ProtocolProcessor.sendPublish(ProtocolProcessor.java:439)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.forward2Subscribers(ProtocolProcessor.java:388)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.forwardPublishWill(ProtocolProcessor.java:358)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.processConnectionLost(ProtocolProcessor.java:574)
at org.eclipse.moquette.spi.impl.SimpleMessaging.onEvent(SimpleMessaging.java:164)
at org.eclipse.moquette.spi.impl.SimpleMessaging.onEvent(SimpleMessaging.java:1)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: java.lang.RuntimeException: Can't find a ConnectionDescriptor for client <CLIENT_32> in cache <{CLIENT_3=ConnectionDescriptor{m_clientID=CLIENT_3, m_cleanSession=true}, CLIENT_2=ConnectionDescriptor{m_clientID=CLIENT_2, m_cleanSession=true}, CLIENT_5=ConnectionDescriptor{m_clientID=CLIENT_5, m_cleanSession=true}, CLIENT_4=ConnectionDescriptor{m_clientID=CLIENT_4, m_cleanSession=true}, CLIENT_7=ConnectionDescriptor{m_clientID=CLIENT_7, m_cleanSession=true}, CLIENT_6=ConnectionDescriptor{m_cli...
ue}, CLIENT_11=ConnectionDescriptor{m_clientID=CLIENT_11, m_cleanSession=true}, CLIENT_12=ConnectionDescriptor{m_clientID=CLIENT_12, m_cleanSession=true}, CLIENT_56=ConnectionDescriptor{m_clientID=CLIENT_56, m_cleanSession=true}, CLIENT_53=ConnectionDescriptor{m_clientID=CLIENT_53, m_cleanSession=true}, CLIENT_54=ConnectionDescriptor{m_clientID=CLIENT_54, m_cleanSession=true}, CLIENT_10=ConnectionDescriptor{m_clientID=CLIENT_10, m_cleanSession=true}, CLIENT_15=ConnectionDescriptor{m_clientID=CLIENT_15, m_cleanSession=true}...
tor{m_clientID=CLIENT_17, m_cleanSession=true}, CLIENT_18=ConnectionDescriptor{m_clientID=CLIENT_18, m_cleanSession=true}, CLIENT_1=ConnectionDescriptor{m_clientID=CLIENT_1, m_cleanSession=true}, CLIENT_51=ConnectionDescriptor{m_clientID=CLIENT_51, m_cleanSession=true}, CLIENT_52=ConnectionDescriptor{m_clientID=CLIENT_52, m_cleanSession=true}, CLIENT_50=ConnectionDescriptor{m_clientID=CLIENT_50, m_cleanSession=true}, CLIENT_44=ConnectionDescriptor{m_clientID=CLIENT_44, m_cleanSession=true}, CLIENT_45=ConnectionDescriptor{m...
e}, CLIENT_40=ConnectionDescriptor{m_clientID=CLIENT_40, m_cleanSession=true}, CLIENT_41=ConnectionDescriptor{m_clientID=CLIENT_41, m_cleanSession=true}, CLIENT_34=ConnectionDescriptor{m_clientID=CLIENT_34, m_cleanSession=true}, CLIENT_31=ConnectionDescriptor{m_clientID=CLIENT_31, m_cleanSession=true}, CLIENT_37=ConnectionDescriptor{m_clientID=CLIENT_37, m_cleanSession=true}, CLIENT_38=ConnectionDescriptor{m_clientID=CLIENT_38, m_cleanSession=true}, CLIENT_35=ConnectionDescriptor{m_clientID=CLIENT_35, m_cleanSession=true},...
or{m_clientID=CLIENT_67, m_cleanSession=true}, CLIENT_64=ConnectionDescriptor{m_clientID=CLIENT_64, m_cleanSession=true}, CLIENT_20=ConnectionDescriptor{m_clientID=CLIENT_20, m_cleanSession=true}, CLIENT_21=ConnectionDescriptor{m_clientID=CLIENT_21, m_cleanSession=true}, CLIENT_65=ConnectionDescriptor{m_clientID=CLIENT_65, m_cleanSession=true}, CLIENT_26=ConnectionDescriptor{m_clientID=CLIENT_26, m_cleanSession=true}, CLIENT_27=ConnectionDescriptor{m_clientID=CLIENT_27, m_cleanSession=true}, CLIENT_24=ConnectionDescriptor{...
at com.lmax.disruptor.FatalExceptionHandler.handleEventException(FatalExceptionHandler.java:45)
at com.lmax.disruptor.BatchE
ventProcessor.run(BatchEventProcessor.java:147)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Can't find a ConnectionDescriptor for client <CLIENT_32> in cache <{CLIENT_3=ConnectionDescriptor{m_clientID=CLIENT_3, m_cleanSession=true}, CLIENT_2=ConnectionDescriptor{m_clientID=CLIENT_2, m_cleanSession=true}, CLIENT_5=ConnectionDescriptor{m_clientID=CLIENT_5, m_cleanSession=true}, CLIENT_4=ConnectionDescriptor{m_clientID=CLIENT_4, m_cleanSession=true}, CLIENT_7=ConnectionDescriptor{m_clientID=CLIENT_7, m_cleanSession=true}, CLIENT_6=ConnectionDescriptor{m_clientID=CLIENT_6, m_c...
D=CLIENT_63, m_cleanSession=true}, CLIENT_60=ConnectionDescriptor{m_clientID=CLIENT_60, m_cleanSession=true}, CLIENT_61=ConnectionDescriptor{m_clientID=CLIENT_61, m_cleanSession=true}, CLIENT_55=ConnectionDescriptor{m_clientID=CLIENT_55, m_cleanSession=true}, CLIENT_11=ConnectionDescriptor{m_clientID=CLIENT_11, m_cleanSession=true}, CLIENT_12=ConnectionDescriptor{m_clientID=CLIENT_12, m_cleanSession=true}, CLIENT_56=ConnectionDescriptor{m_clientID=CLIENT_56, m_cleanSession=true}, CLIENT_53=ConnectionDescriptor{m_clientID=S...
}, CLIENT_14=ConnectionDescriptor{m_clientID=CLIENT_14, m_cleanSession=true}, CLIENT_58=ConnectionDescriptor{m_clientID=CLIENT_58, m_cleanSession=true}, CLIENT_19=ConnectionDescriptor{m_clientID=CLIENT_19, m_cleanSession=true}, CLIENT_17=ConnectionDescriptor{m_clientID=CLIENT_17, m_cleanSession=true}, CLIENT_18=ConnectionDescriptor{m_clientID=CLIENT_18, m_cleanSession=true}, CLIENT_1=ConnectionDescriptor{m_clientID=CLIENT_1, m_cleanSession=true}, CLIENT_51=ConnectionDescriptor{m_clientID=CLIENT_51, m_cleanSession=true}, SC...
m_clientID=CLIENT_49, m_cleanSession=true}, CLIENT_46=ConnectionDescriptor{m_clientID=CLIENT_46, m_cleanSession=true}, CLIENT_47=ConnectionDescriptor{m_clientID=CLIENT_47, m_cleanSession=true}, S0=ConnectionDescriptor{m_clientID=S0, m_cleanSession=true}, CLIENT_40=ConnectionDescriptor{m_clientID=CLIENT_40, m_cleanSession=true}, CLIENT_41=ConnectionDescriptor{m_clientID=CLIENT_41, m_cleanSession=true}, CLIENT_34=ConnectionDescriptor{m_clientID=CLIENT_34, m_cleanSession=true}, CLIENT_31=ConnectionDescriptor{m_clientID=SC...
, CLIENT_66=ConnectionDescriptor{m_clientID=CLIENT_66, m_cleanSession=true}, CLIENT_22=ConnectionDescriptor{m_clientID=CLIENT_22, m_cleanSession=true}, CLIENT_23=ConnectionDescriptor{m_clientID=CLIENT_23, m_cleanSession=true}, CLIENT_67=ConnectionDescriptor{m_clientID=CLIENT_67, m_cleanSession=true}, CLIENT_64=ConnectionDescriptor{m_clientID=CLIENT_64, m_cleanSession=true}, CLIENT_20=ConnectionDescriptor{m_clientID=CLIENT_20, m_cleanSession=true}, CLIENT_21=ConnectionDescriptor{m_clientID=CLIENT_21, m_cleanSession=true}, S...
{m_clientID=CLIENT_28, m_cleanSession=true}, CLIENT_29=ConnectionDescriptor{m_clientID=CLIENT_29, m_cleanSession=true}}>
at org.eclipse.moquette.spi.impl.ProtocolProcessor.sendPublish(ProtocolProcessor.java:439)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.forward2Subscribers(ProtocolProcessor.java:388)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.forwardPublishWill(ProtocolProcessor.java:358)
at org.eclipse.moquette.spi.impl.ProtocolProcessor.processConnectionLost(ProtocolProcessor.java:574)
at org.eclipse.moquette.spi.impl.SimpleMessaging.onEvent(SimpleMessaging.java:164)
at org.eclipse.moquette.spi.impl.SimpleMessaging.onEvent(SimpleMessaging.java:1)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
... 3 more
so I think it's the same error as the one posted above.

I Know that what is causing the error is clients 31-35, when they loose power of network connection sometimes, and then this error message is triggered on the broker (running with jMqttBroker.

Thank you for your help
 

jmon

Well-Known Member
Licensed User
Longtime User
Can I somehow just download moquette latest version (0.9, Jan 2017) from here:
https://bintray.com/andsel/generic/moquette-broker-all
or from here:
https://bintray.com/andsel/maven/io.moquette.moquette-broker#
and just rename it to "moqueutte.jar" and replace the old one?

I also saw that paho was updated last month (v1.1.0):
https://search.maven.org/#search|ga|1|a:"org.eclipse.paho.client.mqttv3"
https://www.eclipse.org/paho/downloads.php
Should we update?

[EDIT] found it, I could download the jar file from here :
https://github.com/andsel/moquette
inside the "distribution-0.8-bundle-tar.tar"

got Moquette-broker 0.8, but the structure of the jar is different:
Capture.JPG

Can it just be replaced or is it more complicated than that?
 
Top