提交 a3788a99 编写于 作者: C congqixia 提交者: zhenshan.cao

Fix unregister node info has no channel (#5699)

Signed-off-by: NCongqi Xia <congqi.xia@zilliz.com>
上级 f1bb02f7
......@@ -170,7 +170,9 @@ func (c *cluster) register(n *datapb.DataNodeInfo) {
c.dataManager.register(n)
cNodes, chanBuffer := c.dataManager.getDataNodes(true)
var rets []*datapb.DataNodeInfo
log.Debug("before register policy applied", zap.Any("n.Channels", n.Channels), zap.Any("buffer", chanBuffer))
rets, chanBuffer = c.registerPolicy.apply(cNodes, n, chanBuffer)
log.Debug("after register policy applied", zap.Any("ret", rets), zap.Any("buffer", chanBuffer))
c.dataManager.updateDataNodes(rets, chanBuffer)
rets = c.watch(rets)
c.dataManager.updateDataNodes(rets, chanBuffer)
......@@ -179,9 +181,14 @@ func (c *cluster) register(n *datapb.DataNodeInfo) {
func (c *cluster) unregister(n *datapb.DataNodeInfo) {
c.mu.Lock()
defer c.mu.Unlock()
c.sessionManager.releaseSession(n.Address)
c.dataManager.unregister(n)
oldNode := c.dataManager.unregister(n)
if oldNode != nil {
n = oldNode
}
cNodes, chanBuffer := c.dataManager.getDataNodes(true)
log.Debug("before unregister policy applied", zap.Any("n.Channels", n.Channels), zap.Any("buffer", chanBuffer))
var rets []*datapb.DataNodeInfo
if len(cNodes) == 0 {
for _, chStat := range n.Channels {
......@@ -191,6 +198,7 @@ func (c *cluster) unregister(n *datapb.DataNodeInfo) {
} else {
rets = c.unregisterPolicy.apply(cNodes, n)
}
log.Debug("after register policy applied", zap.Any("ret", rets), zap.Any("buffer", chanBuffer))
c.dataManager.updateDataNodes(rets, chanBuffer)
rets = c.watch(rets)
c.dataManager.updateDataNodes(rets, chanBuffer)
......
......@@ -158,13 +158,14 @@ func (c *clusterNodeManager) register(n *datapb.DataNodeInfo) {
c.updateMetrics()
}
func (c *clusterNodeManager) unregister(n *datapb.DataNodeInfo) {
func (c *clusterNodeManager) unregister(n *datapb.DataNodeInfo) *datapb.DataNodeInfo {
node, ok := c.dataNodes[n.Address]
if !ok {
return
return nil
}
node.status = offline
c.updateMetrics()
return node.info
}
func (c *clusterNodeManager) updateMetrics() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册