From 561897c3d015e9f189de14ca98d28cd9c4adfeba Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Fri, 11 Jun 2021 16:52:09 +0800 Subject: [PATCH] Load nodes when indexservices started (#5740) Signed-off-by: xiaocai2333 --- internal/indexservice/indexservice.go | 21 +++++++++++++++++++++ internal/indexservice/node_mgr.go | 5 ++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/internal/indexservice/indexservice.go b/internal/indexservice/indexservice.go index c29c021efc..ec305bf474 100644 --- a/internal/indexservice/indexservice.go +++ b/internal/indexservice/indexservice.go @@ -16,6 +16,7 @@ import ( "errors" "math/rand" "strconv" + "strings" "sync" "sync/atomic" "time" @@ -587,6 +588,26 @@ func (i *IndexService) assignTasksServerStart() error { if err != nil { return err } + for _, session := range sessions { + addrs := strings.Split(session.Address, ":") + ip := addrs[0] + port, err := strconv.ParseInt(addrs[1], 10, 64) + if err != nil { + return err + } + + req := &indexpb.RegisterNodeRequest{ + Address: &commonpb.Address{ + Ip: ip, + Port: port, + }, + NodeID: session.ServerID, + } + if err = i.addNode(session.ServerID, req); err != nil { + log.Debug("IndexService", zap.Any("IndexService start find node fatal, err = ", err)) + } + + } var serverIDs []int64 for _, session := range sessions { serverIDs = append(serverIDs, session.ServerID) diff --git a/internal/indexservice/node_mgr.go b/internal/indexservice/node_mgr.go index 59c44261f2..6d29734ddb 100644 --- a/internal/indexservice/node_mgr.go +++ b/internal/indexservice/node_mgr.go @@ -13,7 +13,6 @@ package indexservice import ( "context" - "errors" "strconv" "time" @@ -37,8 +36,8 @@ func (i *IndexService) addNode(nodeID UniqueID, req *indexpb.RegisterNodeRequest defer i.nodeLock.Unlock() if i.nodeClients.CheckAddressExist(req.Address) { - errMsg := "Register IndexNode fatal, address conflict with nodeID:%d 's address" + strconv.FormatInt(nodeID, 10) - return errors.New(errMsg) + log.Debug("IndexService", zap.Any("Node client already exist with ID:", nodeID)) + return nil } nodeAddress := req.Address.Ip + ":" + strconv.FormatInt(req.Address.Port, 10)