diff options
| author | famosss <zzq09494@ly.com> | 2022-08-27 13:52:08 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-26 22:52:08 -0700 |
| commit | dc4037925d34c15dcc77f4fb6fc6006aec7fb74b (patch) | |
| tree | 7acb2805af7f006d80d6d1fdf792d941371ff6bc | |
| parent | 3f3a1341d846fdb36da7eb1b3b51631d2330b732 (diff) | |
| download | seaweedfs-dc4037925d34c15dcc77f4fb6fc6006aec7fb74b.tar.xz seaweedfs-dc4037925d34c15dcc77f4fb6fc6006aec7fb74b.zip | |
fix: Build DeletedVids before reset dn's children (#3530)
| -rw-r--r-- | weed/server/master_grpc_server.go | 11 |
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}) } |
