diff options
Diffstat (limited to 'weed/server/volume_grpc_copy.go')
| -rw-r--r-- | weed/server/volume_grpc_copy.go | 9 |
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 } |
