spinframework / spinframework/spin
Rumqttc Potential Issue
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 6.5k
- Forks
- 310
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 24
Description
Having an eventloop in publish function is not an optimal way of ensuring messages are published to MQTT broker i.e. we will exit the eventloop poll on receipt of publish, puback, pubcomp message but this message is not necessarily correlated to the message a publish call published to the broker always, the message can be from another parallel call going on, as eventloop is shared at client level and a client can make multiple calls in parallel. This results in publish function returning a false (highly likely) confirmation that the message it received was published, making it an unreliable way of confirming message publishing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading crates/outbound-mqtt/src/lib.rs and trace how the shared client eventloop is polled from publish calls. Reproduce or inspect the parallel-call scenario described in the issue, then define completion as publish returning confirmation tied to its own broker response rather than an unrelated concurrent message.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100