diff --git a/pkg/member/participant.go b/pkg/member/participant.go index 82cd7e05f5e..189da7b96c9 100644 --- a/pkg/member/participant.go +++ b/pkg/member/participant.go @@ -121,22 +121,16 @@ func (m *Participant) Client() *clientv3.Client { // IsLeader returns whether the participant is the leader or not by checking its leadership's // lease and leader info. func (m *Participant) IsLeader() bool { - if m.GetLeader() == nil { - return false - } return m.leadership.Check() && m.GetLeader().GetId() == m.member.GetId() && m.campaignCheck() } // IsLeaderElected returns true if the leader exists; otherwise false func (m *Participant) IsLeaderElected() bool { - return m.GetLeader() != nil + return m.GetLeader().GetId() != 0 } // GetLeaderListenUrls returns current leader's listen urls func (m *Participant) GetLeaderListenUrls() []string { - if m.GetLeader() == nil { - return nil - } return m.GetLeader().GetListenUrls() } @@ -149,13 +143,9 @@ func (m *Participant) GetLeaderID() uint64 { func (m *Participant) GetLeader() participant { leader := m.leader.Load() if leader == nil { - return nil - } - member := leader.(participant) - if member.GetId() == 0 { - return nil + return NewParticipantByService(m.serviceName) } - return member + return leader.(participant) } // setLeader sets the member's leader.