aboutsummaryrefslogtreecommitdiff
path: root/weed/server/volume_grpc_copy.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/volume_grpc_copy.go')
-rw-r--r--weed/server/volume_grpc_copy.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/weed/server/volume_grpc_copy.go b/weed/server/volume_grpc_copy.go
index 410c6b05d..2e20941ad 100644
--- a/weed/server/volume_grpc_copy.go
+++ b/weed/server/volume_grpc_copy.go
@@ -291,6 +291,15 @@ func writeToFile(client volume_server_pb.VolumeServer_CopyFileClient, fileName s
}
wt.MaybeSlowdown(int64(len(resp.FileContent)))
}
+ // If no data was written (source file was not found), remove the empty file
+ // to avoid leaving corrupted empty files that cause parse errors later
+ if progressedBytes == 0 && !isAppend {
+ if removeErr := os.Remove(fileName); removeErr != nil {
+ glog.V(1).Infof("failed to remove empty file %s: %v", fileName, removeErr)
+ } else {
+ glog.V(1).Infof("removed empty file %s (source file not found)", fileName)
+ }
+ }
return modifiedTsNs, nil
}