code: func (p *Peer) startTransitionToNormalMode() {
  	log := p.log.New("fn", "startTransitionToNormalMode")
  	if p.Info().State.Primary.Meta[p.idKey] != p.id || p.Info().Role != RolePrimary {
  		panic("startTransitionToNormalMode called when not primary")
  	}
  
  	// In the normal takeover case, we'd pick an async. In this case, we take
  	// any other peer because we know none of them has anything replicated.
  	var newSync *discoverd.Instance
  	for _, peer := range p.Info().Peers {
  		if peer.Meta[p.idKey] != p.id {
  			newSync = peer
  		}
  	}
  	if newSync == nil {
  		log.Warn("would takeover but no peers present")
  		return
  	}
  	newAsync := make([]*discoverd.Instance, 0, len(p.Info().Peers))
  	for _, a := range p.Info().Peers {
  		if a.Meta[p.idKey] != p.id && a.Meta[p.idKey] != newSync.Meta[p.idKey] {
  			newAsync = append(newAsync, a)
  		}
  	}
  
  	log.Debug("transitioning to normal mode")
  	p.startTakeoverWithPeer("transitioning to normal mode", p.db.XLog().Zero(), &State{
  		Sync:  newSync,
  		Async: newAsync,
  	})
  }
docs: // As the primary, converts the current cluster to normal mode from singleton
  // mode.