possible concurrency bug causing lockup
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 37
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
Maybe related to #115
Had an issue developing starpc where sometimes (~10% of the time) the test would get stuck on recv() on both ends even after one side had sent the packet it was waiting for.
I was not able to figure out where the actual issue is located, but after I switched out mplex for yamux, the issue is gone.
So, I think the lockup issue must be in mplex somewhere.
Contributor guide
No contributing guide indexed for this repository
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 reviewing related issue #115 and reproducing the starpc test that can block in recv() on both ends. Compare the mplex behavior with the yamux configuration that avoids the lockup, then trace the relevant mplex receive path. Done means identifying the concurrency cause and demonstrating that the waiting packet is received without a hang.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100