mosquitto
mosquitto copied to clipboard
2.0.15 regression: bridge is not created, with "Expiring client local.xxx due to timeout"
After upgrading to 2.0.15, we observed that in about 50% of cases broker bridges are not created on start-up. The log shows the message
Expiring client local.<bridge-name> due to timeout.
immediately on start-up (i.e. not after an actual conceivable timeout).
This was first reported in https://github.com/eclipse/mosquitto/issues/1334#issuecomment-1219606937 and subsequent comments in that thread (thanks @everactivetim, @vomov), though it's almost certainly a separate issue from #1334. It appears to have been an unintentional side effect of https://github.com/eclipse/mosquitto/commit/c99502a2567bf9147b3d811cb17e38ad51f08660. Indeed, the issue does not seem to occur in 2.0.14.
In our specific case this is on Linux on ARM.
We also reverted to 2.0.14 to solve our problem.
Same - had this issue and glad I saw this as I was pulling my hair out. On 2.0.15, I was only getting these logs:
2022-09-14T21:17:29: Connecting bridge lollipop_mqtt (192.168.1.208:1883)
2022-09-14T21:17:29: Warning: Unable to connect to bridge lollipop_mqtt.
2022-09-14T21:17:29: mosquitto version 2.0.15 running
2022-09-14T21:17:29: Expiring client local.3410804944a7.lollipop_mqtt due to timeout.
Having the same problem on Windows machine:
1664897688: mosquitto version 2.0.15 starting
1664897688: Config loaded from C:\Program Files\mosquitto/mosquitto.conf.
1664897688: Opening ipv4 listen socket on port 1883.
1664897688: Bridge local.PRODUCTION-MOSQ.main doing local SUBSCRIBE on topic ets/sensors/#
1664897688: Bridge local.PRODUCTION-MOSQ.main doing local SUBSCRIBE on topic test/#
1664897688: Connecting bridge main (mqtt:8883)
1664897688: Bridge PRODUCTION-MOSQ.main sending CONNECT
1664897688: mosquitto version 2.0.15 running
1664897688: Expiring client local.PRODUCTION-MOSQ.main due to timeout.
Same issue
1666866838: Config loaded from /mosquitto/config/mosquitto.conf.
1666866838: Opening ipv4 listen socket on port 1886.
1666866838: Opening ipv6 listen socket on port 1886.
1666866838: Connecting bridge mosquitto-device-5 (xxx)
1666866838: mosquitto version 2.0.15 running
1666866839: Expiring client local.mosquitto-device-5 due to timeout.
1666866839: New connection from ::1:51704 on port 1886.
1666866839: New connection from ::1:51706 on port 1886.
1666866839: New client connected from ::1:51704 as sparkplug-maestro (p2, c1, k3000).
1666866839: New client connected from ::1:51706 as old-maestro (p2, c1, k60).
1666866841: New connection from 127.0.0.1:40616 on port 1886.
1666866841: New client connected from 127.0.0.1:40616 as processor (p2, c1, k20).```
I'm pretty sure I was seeing this as well today. That "expiring client local.blah due to timeout", and with zero extra info available. In my case I was only bridging to a same network, 192.168.blah, no encryption, and restarting fixed things, couldn't figure it out. I'll hopefully be able to collect more information though.
In my case it happens every 2nd reboot, on the clock. Reboot -> expires, reboot -> works , reboot -> expires, etc...