[Fix-18166] Restore file parameter transfer feature#18273
Conversation
|
Thanks for opening this pull request! Please check out our contributing guidelines. (https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/contribute/join/pull-request.md) |
|
|
We do not recommend using |
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. |
|
Since this function has not been implemented at present, I suggest using wenjun's suggestion to rewrite it. @loftiest |
|
Hi @SbloodyS , Thanks for the follow-up. I understand the concern about localParams and varPool coupling, but I respectfully hold a different view on the approach. The file parameter transfer feature has been documented in the official documentation for multiple versions, including the current 3.4.1: https://dolphinscheduler.apache.org/zh-cn/docs/3.4.1/guide/parameter/file-parameter. Users who follow the official guide have built their workflows based on this documented feature. When they upgrade to 3.4.1, their workflows silently break — and there is no warning, no deprecation notice, and no migration guide anywhere. Deleting a documented feature without any indication is incorrect and harmful to users who cannot upgrade safely. I agree a redesign would be valuable, but whether we restore or redesign, users need clear notice and a transition period. To reconcile both needs, I propose a phased approach: Phase 1 (this PR or a follow-up): Restore file transfer using the existing localParams with FILE type (consistent with current docs), but decouple it from varPool now — store remote paths in TaskExecutionContext instead of varPool, so the upload/download logic is already clean and independent. Phase 2 (separate PR/version): Introduce a new explicit file transfer configuration. Mark the old FILE-based localParams approach as @deprecated with a prominent documentation notice, and remove it only in a subsequent version, giving users at least one full version cycle to migrate. The key principle: don't silently break documented features. Users need sufficient notice and a proper transition path. What do you think? Thanks! |


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