mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
raft: return empty status if node is stopped
If the node is stopped, then Status can hang forever because there is no event loop to answer. So, just return empty status to avoid deadlocks. Fix #6855 Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
This commit is contained in:
parent
7c8f13aed7
commit
7afc490c95
@ -462,8 +462,12 @@ func (n *node) ApplyConfChange(cc pb.ConfChange) *pb.ConfState {
|
||||
|
||||
func (n *node) Status() Status {
|
||||
c := make(chan Status)
|
||||
n.status <- c
|
||||
return <-c
|
||||
select {
|
||||
case n.status <- c:
|
||||
return <-c
|
||||
case <-n.done:
|
||||
return Status{}
|
||||
}
|
||||
}
|
||||
|
||||
func (n *node) ReportUnreachable(id uint64) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user