From 86d86c419375feaf738e8d7eea5ef88d17513c46 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 18 Oct 2026 20:28:30 -0700 Subject: [PATCH] master: echo the volume-id bound and fold reported bounds in (#11763) Every heartbeat response carries the leader current max volume id and topology id; every heartbeat reported max_volume_id_seen is folded into the topology bound via UpAdjustMaxVolumeId. --- weed/server/master_grpc_server.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go index 058ecacd58..60aa07bc92 100644 --- a/weed/server/master_grpc_server.go +++ b/weed/server/master_grpc_server.go @@ -46,6 +46,8 @@ func (ms *MasterServer) heartbeatResponse() *master_pb.HeartbeatResponse { return &master_pb.HeartbeatResponse{ VolumeSizeLimit: uint64(ms.option.VolumeSizeLimitMB) * 1024 * 1024, Preallocate: ms.preallocateSize > 0, + MaxVolumeId: uint32(ms.Topo.GetMaxVolumeId()), + TopologyId: ms.Topo.GetTopologyId(), } } @@ -179,6 +181,7 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ } ms.Topo.Sequence.SetMax(heartbeat.MaxFileKey) + ms.Topo.UpAdjustMaxVolumeId(needle.VolumeId(heartbeat.MaxVolumeIdSeen)) if dn == nil { // Skip delta heartbeat for volume server versions better than 3.28 https://github.com/seaweedfs/seaweedfs/pull/3630 if heartbeat.Ip == "" {