hashicorp / hashicorp/consul

Cluster peering commands have a 1 in N consul servers chance of succeeding

Open
#15,052 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

It seems that only when a Consul server node is the active raft leader that `consul peering` related commands can be run against it (follower nodes simply fail with `Error listing peerings`, for example)

On follower nodes, the errors being logged read:
```
[core]grpc: addrConn.createTransport failed to connect to {__cluster_name__-__internal_lan_ip__:8300 leader
transport: Error while dialing failed to find Consul server for global address "__cluster_name__-__internal_lan_ip__:8300"
```
where `__cluster_name__` and `__internal_lan_ip__` are both valid, and there is no issues with line of sight/CA certificates/etc - from any node logging the error, line of sight can be confirmed with `telnet __internal_lan_ip__ 8300` and the connection attempt is logged on the remote end

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the `consul peering` commands against follower and leader Consul server nodes, then trace the logged gRPC address-resolution failure and the Raft leader interaction. Done means peering commands succeed when sent to follower nodes as well as the active leader, without the reported `Error listing peerings` failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli, distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.