question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Command and control not working as expected when receiving warning in enmasse/qpid broker

See original GitHub issue

We are experiencing issues with the command and control functionality. We currently have 2 devices which connect to the hono mqtt adapter (version 1.0.1). From time to time, the subscription is not done properly which results in following warnings on the broker of enmasse:

    2019-11-21T16:17:31.827Z WARN  [server] AMQ222165: No Dead Letter Address configured for queue control/tenant/device in AddressSettings
    2019-11-21T16:17:31.828Z WARN  [server] AMQ222166: No Expiry Address configured for queue control/tenant/device in AddressSettings

For the sake of completeness: the device is in fact a gateway (in the old sense of the word where other devices have a via property in which the gateway is configured) but subscribes to hono with it’s own address. I don’t know the exact reason yet, but when I see the warnings in the broker, the command and control messages (sent to control/tenant/device) are not received in the adapter. When I restart the adapter and reconnect the devices and I’m not getting the warnings, command and control works just fine. Whenever I’m getting the warnings, the commands are not received by hono. I can’t seem to figure out in which cases I’m getting the warnings. Things I’ve done in order to reproduce this:

  • Restart device (results in reconnect of the device)
  • Restart the mqtt adapter (results in both devices reconnecting at the ‘same’ time). Most of the times (not always) this results in 1 device being able to receive commands and the other not.
  • Restart the mqtt adapter while the devices are not connected. Reconnect the devices one by one results in (apparantly) better odds of not receiving the warning.

As stated, I’m not sure how to reproduce this. The only thing I’m sure of is the fact that we do not receive commands when the warning is thrown by the enmasse/qpid broker.

Any ideas?

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
BobClaerhoutcommented, Nov 26, 2019

That was the issue! Thanks for responses @sophokles73 and @calohmn.

0reactions
calohmncommented, Nov 22, 2019

The command messages are not meant to be brokered, so I think you should use a different address type for the command addresses in EnMasse, namely the anycast type. Aside from being a brokered address type, the topic type you mentioned would also not fit because it’s a multicast type (each message being forwarded to all subscribers). As of now we only use the anycast pattern in Hono.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Appendix F. Impact of Broker enforced Producer Flow Control ...
Producing sessions can be blocked by the Qpid Broker when Producer Flow Control is enforced either on exceeding of disk quota or breaching...
Read more >
Documentation for EnMasse on OpenShift - Red Hat People
Address plans specify the expected resource usage of a given address. The sum of the resource usage for all resource types determines the...
Read more >
Apache Qpid JMS client message producer getting stuck and ...
I am trying to send a message to the Qpid broker over the AMQP 1.0 protocol. The queue is named ...
Read more >
enmasse/CHANGELOG.md at master - GitHub
EnMasse - Self-service messaging on Kubernetes and OpenShift - enmasse/CHANGELOG.md at master · EnMasseProject/enmasse.
Read more >
OpenShift Guide (Master) - EnMasse
For diagnostic purposes, you can change the broker logging level at runtime, which can be helpful when troubleshooting issues with sending or receiving...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found