hashicorp / hashicorp/consul

Don't exit the blocking query when the abandonCh closes

Open
#2,714 0 comments 0 reactions 0 assignees View on GitHub
theme/internal-cleanup type/enhancement
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

As long as we fetch a fresh `abandonCh` in the rpc.go's blocking query wrapper, we shouldn't need to return all the way back to the caller. Fix this in a similar fashion as Nomad.

Here's the reference code from Nomad:

https://github.com/hashicorp/nomad/blob/v0.5.6/nomad/rpc.go#L338-L398

And the corresponding Code in Consul:

https://github.com/hashicorp/consul/blob/v0.8.0/consul/rpc.go#L349-L419

Contributor guide

Open the contributing guide

Research direction

Start in rpc.go's blocking query wrapper and compare its behavior with the linked Nomad and Consul implementations. Confirm that closing abandonCh does not return all the way to the caller when a fresh channel can be fetched, then verify the blocking-query behavior with the relevant tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.