From 17484fd73ea7246101ccd99338918369faa7fd01 Mon Sep 17 00:00:00 2001 From: Travis Turner Date: Wed, 20 Dec 2017 14:52:59 -0600 Subject: [PATCH] make sure the holder has opened before merging NodeStatus --- server.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server.go b/server.go index f251ac444..dc25103ff 100644 --- a/server.go +++ b/server.go @@ -512,7 +512,18 @@ func (s *Server) HandleRemoteStatus(pb proto.Message) error { if s.Cluster.State != ClusterStateNormal { return nil } - return s.mergeRemoteStatus(pb.(*internal.NodeStatus)) + + go func() { + // Make sure the holder has opened. + <-s.Holder.opened + + err := s.mergeRemoteStatus(pb.(*internal.NodeStatus)) + if err != nil { + s.Logger().Printf("merge remote status: %s", err) + } + }() + + return nil } func (s *Server) mergeRemoteStatus(ns *internal.NodeStatus) error {