From 9573c0f4b36a6cea0b1e924fcffe130ec734825d Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 24 Oct 2019 10:16:01 -0700 Subject: [PATCH] filer: filer.copy cleanup in case of failed uploads --- weed/command/filer_copy.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/weed/command/filer_copy.go b/weed/command/filer_copy.go index 1dd831cb6..cc73549b4 100644 --- a/weed/command/filer_copy.go +++ b/weed/command/filer_copy.go @@ -400,15 +400,21 @@ func (worker *FileCopyWorker) uploadFileInChunks(ctx context.Context, task FileC wg.Wait() close(chunksChan) - if uploadError != nil { - return uploadError - } var chunks []*filer_pb.FileChunk for chunk := range chunksChan { chunks = append(chunks, chunk) } + if uploadError != nil { + var fileIds []string + for _, chunk := range chunks { + fileIds = append(fileIds, chunk.FileId) + } + operation.DeleteFiles(worker.options.masterClient.GetMaster(), worker.options.grpcDialOption, fileIds) + return uploadError + } + if err := withFilerClient(ctx, worker.filerGrpcAddress, worker.options.grpcDialOption, func(client filer_pb.SeaweedFilerClient) error { request := &filer_pb.CreateEntryRequest{ Directory: task.destinationUrlPath,