refactor(grpc): simplify download task success handling #1581
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request refactors the logic in both the download and upload gRPC server handlers to improve the order in which certain operations are performed after a download task succeeds. The main change is to ensure that the
download_finishedmethod is always called before checking for output path handling when the download is not a ranged request.Key changes:
Refactoring task completion flow:
task_manager_clone.download_finishedis now always executed immediately after a successful download, regardless of whether the download is ranged or not, in bothDfdaemonDownloadServerHandlerandDfdaemonUploadServerHandlerimplementations (dragonfly-client/src/grpc/dfdaemon_download.rs,dragonfly-client/src/grpc/dfdaemon_upload.rs). [1] [2]Conditional output path handling:
download_clone.range.is_none()and the subsequent output path handling logic have been moved to occur after thedownload_finishedcall, ensuring proper task completion notification before any file system operations (dragonfly-client/src/grpc/dfdaemon_download.rs,dragonfly-client/src/grpc/dfdaemon_upload.rs). [1] [2]Related Issue
Motivation and Context
Screenshots (if appropriate)