aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-03-22 13:24:07 -0700
committerChris Lu <chris.lu@gmail.com>2021-03-22 13:24:07 -0700
commit5d931eff2727be10ad01cd2920f8e47cf034e895 (patch)
tree221136facfdec4dd1a44cdbe3c9676320602e2df
parentf315eb2bb85a2e0ec73751962826a86b43a1749f (diff)
downloadseaweedfs-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.go6
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