aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfamosss <zzq09494@ly.com>2022-08-27 13:52:08 +0800
committerGitHub <noreply@github.com>2022-08-26 22:52:08 -0700
commitdc4037925d34c15dcc77f4fb6fc6006aec7fb74b (patch)
tree7acb2805af7f006d80d6d1fdf792d941371ff6bc
parent3f3a1341d846fdb36da7eb1b3b51631d2330b732 (diff)
downloadseaweedfs-dc4037925d34c15dcc77f4fb6fc6006aec7fb74b.tar.xz
seaweedfs-dc4037925d34c15dcc77f4fb6fc6006aec7fb74b.zip
fix: Build DeletedVids before reset dn's children (#3530)
-rw-r--r--weed/server/master_grpc_server.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go
index e917909ae..4b65979bd 100644
--- a/weed/server/master_grpc_server.go
+++ b/weed/server/master_grpc_server.go
@@ -68,11 +68,6 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
glog.V(0).Infof("disconnect phantom volume server %s:%d remaining %d", dn.Ip, dn.Port, dn.Counter)
return
}
- // if the volume server disconnects and reconnects quickly
- // the unregister and register can race with each other
- ms.Topo.UnRegisterDataNode(dn)
- glog.V(0).Infof("unregister disconnected volume server %s:%d", dn.Ip, dn.Port)
- ms.UnRegisterUuids(dn.Ip, dn.Port)
message := &master_pb.VolumeLocation{
Url: dn.Url(),
@@ -85,6 +80,12 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
message.DeletedVids = append(message.DeletedVids, uint32(s.VolumeId))
}
+ // if the volume server disconnects and reconnects quickly
+ // the unregister and register can race with each other
+ ms.Topo.UnRegisterDataNode(dn)
+ glog.V(0).Infof("unregister disconnected volume server %s:%d", dn.Ip, dn.Port)
+ ms.UnRegisterUuids(dn.Ip, dn.Port)
+
if len(message.DeletedVids) > 0 {
ms.broadcastToClients(&master_pb.KeepConnectedResponse{VolumeLocation: message})
}