You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix#18166 – Restore the file parameter transfer feature
Brief change log
Add TaskFilesTransferUtils to transfer file paramter.
Integrate upstream file download in PhysicalTaskExecutor#initializeTaskContext.
Add success hook in PhysicalTaskExecutor#trackTaskExecutorState to trigger output file upload only on SUCCEEDED.
Update CuringParamsServiceImpl to map input file parameter values as keys, so they can be matched against the workflow varPool output file parameters and resolved from prepareParamsMap.
Add unit tests for TaskFilesTransferUtils and PhysicalTaskExecutor.
Verify this pull request
This change added tests and can be verified as follows:
Added unit tests covering download/upload with FILE parameters, including edge cases.
Added integration test verifying that file transfer and varPool can coexist and work correctly together.
Manually tested with Shell tasks on a local cluster, confirming downstream task receives the file.
We do not recommend using localparams to store file paths, as this can easily lead to issues such as file renaming and may be affected by varpool. Instead, we should add a new switch at the task level to indicate whether the current task’s output should be uploaded, and include a parameter to specify whether to use the output from a particular upstream task.
We do not recommend using localparams to store file paths, as this can easily lead to issues such as file renaming and may be affected by varpool. Instead, we should add a new switch at the task level to indicate whether the current task’s output should be uploaded, and include a parameter to specify whether to use the output from a particular upstream task.
Thanks for the suggestion! I agree that storing file paths in localParams and coupling with varPool can be fragile, especially with renaming. A dedicated task-level switch would indeed be a more robust long-term solution.
However, the goal of this PR is to restore the file parameter transfer feature, rather than redesign it. The existing FILE parameter mechanism has been used and documented for several versions. Changing it now would be a breaking change and should go through a separate improvement proposal.
I think your idea is great as a new feature/improvement. Could we track that in a new issue? I'd be happy to help design and implement it.
Thanks!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Was this PR generated or assisted by AI?
NO
Purpose of the pull request
Fix #18166 – Restore the file parameter transfer feature
Brief change log
TaskFilesTransferUtilsto transfer file paramter.PhysicalTaskExecutor#initializeTaskContext.PhysicalTaskExecutor#trackTaskExecutorStateto trigger output file upload only onSUCCEEDED.CuringParamsServiceImplto map input file parameter values as keys, so they can be matched against the workflowvarPooloutput file parameters and resolved fromprepareParamsMap.TaskFilesTransferUtilsandPhysicalTaskExecutor.Verify this pull request
This change added tests and can be verified as follows:
FILEparameters, including edge cases.varPoolcan coexist and work correctly together.Pull Request Notice
Pull Request Notice
If your pull request contains incompatible change, you should also add it to
docs/docs/en/guide/upgrade/incompatible.md