From 885fd256a0b1bcfda1b77f7fb8ceeb677ca4bbe3 Mon Sep 17 00:00:00 2001 From: AJ Roetker Date: Tue, 6 Jul 2021 11:56:16 -0700 Subject: [PATCH] Fix grid leader errors (#170) --- server.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server.go b/server.go index 0d8cf55..1436a3e 100644 --- a/server.go +++ b/server.go @@ -427,7 +427,11 @@ func (s *Server) startActorC(c context.Context, start *ActorStart) error { timeout, cancel := context.WithTimeout(c, s.cfg.Timeout) defer cancel() if err := s.registry.Register(timeout, nsName); err != nil { - s.deregisterActor(nsName) + // Grid tries to start up leaders continuously so we need to ignore calling deregister + // otherwise we will deregister a leader out from under itself starting multiple leaders + if !(start.Type == "leader" && strings.Contains(err.Error(), registry.ErrAlreadyRegistered.Error())) { + s.deregisterActor(nsName) + } return fmt.Errorf("registering actor %q: %w", nsName, err) }