diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-08-13 03:24:21 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-08-13 03:24:21 -0700 |
| commit | f4decf02dff3aa6df9e9d75646abc58abca35e72 (patch) | |
| tree | 4e8900da94015550c3b1ea0cb7aef70ba00725c9 /weed/server/volume_grpc_copy.go | |
| parent | 0f7d4556d839ffc9d0dcfbc965e3b970cb30c77d (diff) | |
| download | seaweedfs-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.go | 15 |
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 } |
