aboutsummaryrefslogtreecommitdiff
path: root/weed/topology
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology')
-rw-r--r--weed/topology/topology.go8
-rw-r--r--weed/topology/volume_growth.go5
2 files changed, 9 insertions, 4 deletions
diff --git a/weed/topology/topology.go b/weed/topology/topology.go
index 619cc9696..77716605a 100644
--- a/weed/topology/topology.go
+++ b/weed/topology/topology.go
@@ -88,11 +88,13 @@ func (t *Topology) Lookup(collection string, vid storage.VolumeId) []*DataNode {
return nil
}
-func (t *Topology) NextVolumeId() storage.VolumeId {
+func (t *Topology) NextVolumeId() (storage.VolumeId, error) {
vid := t.GetMaxVolumeId()
next := vid.Next()
- go t.RaftServer.Do(NewMaxVolumeIdCommand(next))
- return next
+ if _, err := t.RaftServer.Do(NewMaxVolumeIdCommand(next)); err != nil {
+ return 0, err
+ }
+ return next, nil
}
func (t *Topology) HasWritableVolume(option *VolumeGrowOption) bool {
diff --git a/weed/topology/volume_growth.go b/weed/topology/volume_growth.go
index 3d178b827..ef39a1c01 100644
--- a/weed/topology/volume_growth.go
+++ b/weed/topology/volume_growth.go
@@ -82,7 +82,10 @@ func (vg *VolumeGrowth) findAndGrow(grpcDialOption grpc.DialOption, topo *Topolo
if e != nil {
return 0, e
}
- vid := topo.NextVolumeId()
+ vid, raftErr := topo.NextVolumeId()
+ if raftErr != nil {
+ return 0, raftErr
+ }
err := vg.grow(grpcDialOption, topo, vid, option, servers...)
return len(servers), err
}