need some locking, remove redundant check

pull/4233/head
Cory LaNou 2015-10-01 16:52:14 -05:00
parent def2551d65
commit 114b20ec5c
1 changed files with 16 additions and 4 deletions

View File

@ -378,6 +378,8 @@ func (s *Store) joinCluster() error {
}
func (s *Store) enableLocalRaft() error {
s.mu.Lock()
defer s.mu.Unlock()
if _, ok := s.raftState.(*localRaft); ok {
return nil
}
@ -398,6 +400,13 @@ func (s *Store) enableRemoteRaft() error {
}
func (s *Store) checkRaftState() error {
s.mu.RLock()
if s.raftState == nil {
s.mu.RUnlock()
return nil
}
s.mu.RUnlock()
peers, err := s.raftState.peers()
if err != nil {
return err
@ -414,10 +423,6 @@ func (s *Store) checkRaftState() error {
return nil
}
if _, ok := s.raftState.(*localRaft); ok {
return nil
}
return s.enableLocalRaft()
}
@ -905,6 +910,13 @@ func (s *Store) DeleteNode(id uint64, force bool) error {
func (s *Store) promoteRandomNodeToPeer() error {
// Only do this if you are the leader
if s.raftState.isLeader() {
s.mu.Lock()
defer s.mu.Unlock()
if s.raftState == nil {
return nil
}
peers, err := s.raftState.peers()
if err != nil {
return err