diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-03-22 13:24:07 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-03-22 13:24:07 -0700 |
| commit | 5d931eff2727be10ad01cd2920f8e47cf034e895 (patch) | |
| tree | 221136facfdec4dd1a44cdbe3c9676320602e2df | |
| parent | f315eb2bb85a2e0ec73751962826a86b43a1749f (diff) | |
| download | seaweedfs-5d931eff2727be10ad01cd2920f8e47cf034e895.tar.xz seaweedfs-5d931eff2727be10ad01cd2920f8e47cf034e895.zip | |
avoid possible nil
fix https://github.com/chrislusf/seaweedfs/issues/1928
The nil was because of `dn.Parent().UnlinkChildNode(dn.Id())` in topo.UnRegisterDataNode() function, when the dn leaves the cluster.
| -rw-r--r-- | weed/server/master_grpc_server.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go index 0f0b7f101..3e6d9bb9e 100644 --- a/weed/server/master_grpc_server.go +++ b/weed/server/master_grpc_server.go @@ -80,10 +80,14 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ dn.AdjustMaxVolumeCounts(heartbeat.MaxVolumeCounts) glog.V(4).Infof("master received heartbeat %s", heartbeat.String()) + var dataCenter string + if dc := dn.GetDataCenter(); dc != nil { + dataCenter = string(dc.Id()) + } message := &master_pb.VolumeLocation{ Url: dn.Url(), PublicUrl: dn.PublicUrl, - DataCenter: string(dn.GetDataCenter().Id()), + DataCenter: dataCenter, } if len(heartbeat.NewVolumes) > 0 || len(heartbeat.DeletedVolumes) > 0 { // process delta volume ids if exists for fast volume id updates |
