mirror of https://github.com/milvus-io/milvus.git
Fix unregister node info has no channel (#5699)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/5779/head
parent
f1bb02f724
commit
a3788a99c5
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue