hashicorp / hashicorp/memberlist
Too many pending push/pull requests
- Dominant language
- Go
- Stars
- 4.1k
- Forks
- 478
- Avg merge
- 15h 58m
- Merged PRs (30d)
- 3
Description
Hello,
I am using memberlist as part of a caching architecture. In the delegate interface, I update local outdated or empty cache in `MergeRemoteState` with a fresh cache instance from other members in `LocalState`. According to the documentation I have found this is the way to go, please correct me if I misunderstood something.
For some reason I have not yet been able to identify 100%, after some time I get the error `Too many pending push/pull requests` and that member practically becomes unresponsive.
I can see that this error is produced in `net.go` of the pkg from open push pull requests. However I cannnot find a way to clean up those push pull requests nor the reason they are accumulated.
I checked the Broadcast queue and it is empty at any time. So I am not sure if I implementing something the wrong way or if I miss sth or both.
Could you provide some extra insight please?
Contributor guide
Research direction
Start in net.go at the `Too many pending push/pull requests` error and trace how open push/pull requests are created and cleared. Review the delegate callbacks `MergeRemoteState` and `LocalState`, then compare this behavior with the empty Broadcast queue described in the report. Done means identifying why requests accumulate and documenting or correcting the responsible behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100