Browse Source
Merge pull request #1444 from levenlabs/delete
volume: Don't unmount before deleting volume in copy
pull/1446/head
Chris Lu
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
6 additions and
8 deletions
-
weed/server/volume_grpc_copy.go
-
weed/storage/disk_location.go
-
weed/storage/store.go
|
|
@ -27,17 +27,12 @@ func (vs *VolumeServer) VolumeCopy(ctx context.Context, req *volume_server_pb.Vo |
|
|
|
|
|
|
|
glog.V(0).Infof("volume %d already exists. deleted before copying...", req.VolumeId) |
|
|
|
|
|
|
|
err := vs.store.UnmountVolume(needle.VolumeId(req.VolumeId)) |
|
|
|
if err != nil { |
|
|
|
return nil, fmt.Errorf("failed to mount existing volume %d: %v", req.VolumeId, err) |
|
|
|
} |
|
|
|
|
|
|
|
err = vs.store.DeleteVolume(needle.VolumeId(req.VolumeId)) |
|
|
|
err := vs.store.DeleteVolume(needle.VolumeId(req.VolumeId)) |
|
|
|
if err != nil { |
|
|
|
return nil, fmt.Errorf("failed to delete existing volume %d: %v", req.VolumeId, err) |
|
|
|
} |
|
|
|
|
|
|
|
glog.V(0).Infof("deleted exisitng volume %d before copying.", req.VolumeId) |
|
|
|
glog.V(0).Infof("deleted existing volume %d before copying.", req.VolumeId) |
|
|
|
} |
|
|
|
|
|
|
|
location := vs.store.FindFreeLocation() |
|
|
|
|
|
@ -174,6 +174,9 @@ func (l *DiskLocation) DeleteCollectionFromDiskLocation(collection string) (e er |
|
|
|
} |
|
|
|
|
|
|
|
func (l *DiskLocation) deleteVolumeById(vid needle.VolumeId) (found bool, e error) { |
|
|
|
l.volumesLock.Lock() |
|
|
|
defer l.volumesLock.Unlock() |
|
|
|
|
|
|
|
v, ok := l.volumes[vid] |
|
|
|
if !ok { |
|
|
|
return |
|
|
|
|
|
@ -380,7 +380,7 @@ func (s *Store) DeleteVolume(i needle.VolumeId) error { |
|
|
|
Ttl: v.Ttl.ToUint32(), |
|
|
|
} |
|
|
|
for _, location := range s.Locations { |
|
|
|
if found, error := location.deleteVolumeById(i); found && error == nil { |
|
|
|
if found, err := location.deleteVolumeById(i); found && err == nil { |
|
|
|
glog.V(0).Infof("DeleteVolume %d", i) |
|
|
|
s.DeletedVolumesChan <- message |
|
|
|
return nil |
|
|
|