spinframework / spinframework/spin

Rumqttc Potential Issue

Open
#2,407 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.