diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2019-02-25 00:13:29 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-25 00:13:29 -0800 |
| commit | 47bf0e3eaeb2ba2c46f4540a18b7382c7cf51ff1 (patch) | |
| tree | 94cb3d2d08d38b7cfdc5445ab33142a8e1cb5602 /weed | |
| parent | 0a106c1757c207d17e41f47b381a69eaab9ee1e6 (diff) | |
| parent | 0bc3cdd26ae96de640b8b06896dff2baf7605abf (diff) | |
| download | seaweedfs-47bf0e3eaeb2ba2c46f4540a18b7382c7cf51ff1.tar.xz seaweedfs-47bf0e3eaeb2ba2c46f4540a18b7382c7cf51ff1.zip | |
Merge pull request #858 from PapaYofen/hack
Fix https://github.com/chrislusf/seaweedfs/issues/825
Diffstat (limited to 'weed')
| -rw-r--r-- | weed/topology/topology.go | 8 | ||||
| -rw-r--r-- | weed/topology/volume_growth.go | 5 |
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 } |
