Browse Source

fix: Build DeletedVids before reset dn's children (#3530)

pull/3534/head
famosss 2 years ago
committed by GitHub
parent
commit
dc4037925d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      weed/server/master_grpc_server.go

11
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) glog.V(0).Infof("disconnect phantom volume server %s:%d remaining %d", dn.Ip, dn.Port, dn.Counter)
return 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{ message := &master_pb.VolumeLocation{
Url: dn.Url(), Url: dn.Url(),
@ -85,6 +80,12 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
message.DeletedVids = append(message.DeletedVids, uint32(s.VolumeId)) 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 { if len(message.DeletedVids) > 0 {
ms.broadcastToClients(&master_pb.KeepConnectedResponse{VolumeLocation: message}) ms.broadcastToClients(&master_pb.KeepConnectedResponse{VolumeLocation: message})
} }

Loading…
Cancel
Save