aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_grpc_copy.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-08-13 03:24:21 -0700
committerChris Lu <chris.lu@gmail.com>2021-08-13 03:24:21 -0700
commitf4decf02dff3aa6df9e9d75646abc58abca35e72 (patch)
tree4e8900da94015550c3b1ea0cb7aef70ba00725c9 /weed/server/volume_grpc_copy.go
parent0f7d4556d839ffc9d0dcfbc965e3b970cb30c77d (diff)
downloadseaweedfs-f4decf02dff3aa6df9e9d75646abc58abca35e72.tar.xz
seaweedfs-f4decf02dff3aa6df9e9d75646abc58abca35e72.zip
volume copying: clean up stale volume data files
fix https://github.com/chrislusf/seaweedfs/issues/2250
Diffstat (limited to 'weed/server/volume_grpc_copy.go')
-rw-r--r--weed/server/volume_grpc_copy.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/weed/server/volume_grpc_copy.go b/weed/server/volume_grpc_copy.go
index 086591e97..2ad77a7ff 100644
--- a/weed/server/volume_grpc_copy.go
+++ b/weed/server/volume_grpc_copy.go
@@ -69,16 +69,25 @@ func (vs *VolumeServer) VolumeCopy(ctx context.Context, req *volume_server_pb.Vo
ioutil.WriteFile(dataBaseFileName+".note", []byte(fmt.Sprintf("copying from %s", req.SourceDataNode)), 0755)
+ defer func() {
+ if err != nil {
+ os.Remove(dataBaseFileName + ".dat")
+ os.Remove(indexBaseFileName + ".idx")
+ os.Remove(dataBaseFileName + ".vif")
+ os.Remove(dataBaseFileName + ".note")
+ }
+ }()
+
// println("source:", volFileInfoResp.String())
- if err := vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.DatFileSize, dataBaseFileName, ".dat", false, true); err != nil {
+ if err = vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.DatFileSize, dataBaseFileName, ".dat", false, true); err != nil {
return err
}
- if err := vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.IdxFileSize, indexBaseFileName, ".idx", false, false); err != nil {
+ if err = vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.IdxFileSize, indexBaseFileName, ".idx", false, false); err != nil {
return err
}
- if err := vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.DatFileSize, dataBaseFileName, ".vif", false, true); err != nil {
+ if err = vs.doCopyFile(client, false, req.Collection, req.VolumeId, volFileInfoResp.CompactionRevision, volFileInfoResp.DatFileSize, dataBaseFileName, ".vif", false, true); err != nil {
return err
}