aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/node.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-05-30 08:20:00 -0700
committerchrislu <chris.lu@gmail.com>2023-05-30 08:20:00 -0700
commitca7cc613194b88985548ddaf90fc1687af21a7d6 (patch)
tree1281660e58611158b7d0ed9a369cbab7a89c878c /weed/topology/node.go
parentb0da8788a1294714d90f2f0dd6918b00a100ef6f (diff)
downloadseaweedfs-ca7cc613194b88985548ddaf90fc1687af21a7d6.tar.xz
seaweedfs-ca7cc613194b88985548ddaf90fc1687af21a7d6.zip
reduce the window size between unregistering a volume server and creating volumes on that server
fix https://github.com/seaweedfs/seaweedfs/issues/4467
Diffstat (limited to 'weed/topology/node.go')
-rw-r--r--weed/topology/node.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/topology/node.go b/weed/topology/node.go
index 89a6305e8..a42146339 100644
--- a/weed/topology/node.go
+++ b/weed/topology/node.go
@@ -179,7 +179,11 @@ func (n *NodeImpl) ReserveOneVolume(r int64, option *VolumeGrowOption) (assigned
} else {
if node.IsDataNode() && node.AvailableSpaceFor(option) > 0 {
// fmt.Println("vid =", vid, " assigned to node =", node, ", freeSpace =", node.FreeSpace())
- return node.(*DataNode), nil
+ dn := node.(*DataNode)
+ if dn.IsTerminating {
+ continue
+ }
+ return dn, nil
}
assignedNode, err = node.ReserveOneVolume(r, option)
if err == nil {