hashicorp / hashicorp/memberlist

Too many pending push/pull requests

Open
#259 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.