From 057484e5e39ca1018ab353b7168181ba0efdb85f Mon Sep 17 00:00:00 2001 From: chris Date: Tue, 27 Jan 2026 16:55:09 +0800 Subject: [PATCH 1/4] [Fix-17908][Flink] Remove -sae parameter for APPLICATION mode to prevent task termination The -sae (--shutdownOnAttachedExit) parameter is only suitable for attached mode where the CLI stays connected and waits for the job to complete. However, YARN Application mode runs in detached mode where the CLI exits after submission, causing the -sae parameter to trigger cluster shutdown and terminate the job unexpectedly. Changes: - Only add -sae parameter for non-APPLICATION deploy modes - Update test cases to reflect the new behavior --- .../plugin/task/flink/FlinkArgsUtilsTest.java | 3 ++- .../dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java | 5 ++++- .../plugin/task/flink/FlinkArgsUtilsTest.java | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java index 1d116b8b8ec2..9c1cf8967f52 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java @@ -68,8 +68,9 @@ public void testRunJarInApplicationMode() throws Exception { FlinkStreamParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION); List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // APPLICATION mode should NOT include -sae parameter (detached mode on YARN) Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine)); } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java index fe374c9d8fed..385a683631b3 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java @@ -267,7 +267,10 @@ private static List buildRunCommandLineForOthers(TaskExecutionContext ta // If the job is submitted in attached mode, perform a best-effort cluster shutdown when the CLI is terminated // abruptly // The task status will be synchronized with the cluster job status - args.add(FlinkConstants.FLINK_SHUTDOWN_ON_ATTACHED_EXIT); // -sae + // Note: -sae should NOT be used for APPLICATION mode, as it runs in detached mode on YARN + if (deployMode != FlinkDeployMode.APPLICATION) { + args.add(FlinkConstants.FLINK_SHUTDOWN_ON_ATTACHED_EXIT); // -sae + } // -s -yqu -yat -yD -D if (StringUtils.isNotEmpty(others)) { diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java index b53260bb87eb..05935e526172 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java @@ -68,8 +68,9 @@ public void testRunJarInApplicationMode() throws Exception { FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION); List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // APPLICATION mode should NOT include -sae parameter (detached mode on YARN) Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine)); } From 241ad6ac2dec64ad928940bf596affbbe7a06afa Mon Sep 17 00:00:00 2001 From: chris Date: Wed, 28 Jan 2026 18:07:17 +0800 Subject: [PATCH 2/4] [Improvement-17908][Flink] Make -sae parameter configurable in UI with default off Changes: - Add shutdownOnAttachedExit field to FlinkParameters with enhanced JavaDoc - Change logic from hardcoded deployMode check to configuration-based - Add UI switch control in Flink task form (positioned after Yarn Queue) - Add comprehensive test cases for all scenarios (null, false, true, APPLICATION mode) - Add Chinese and English i18n translations - Default value: false (disabled for safety and backward compatibility) This addresses the reviewer's feedback to make the -sae parameter configurable via UI instead of hardcoded behavior based on deploy mode. The implementation uses Boolean type (three-state: null/false/true) to ensure backward compatibility with existing tasks. --- .gitignore | 5 ++ .../plugin/task/flink/FlinkArgsUtilsTest.java | 10 ++-- .../plugin/task/flink/FlinkArgsUtils.java | 4 +- .../plugin/task/flink/FlinkParameters.java | 23 +++++++++ .../plugin/task/flink/FlinkArgsUtilsTest.java | 49 +++++++++++++++++-- .../src/locales/en_US/project.ts | 3 ++ .../src/locales/zh_CN/project.ts | 3 ++ .../task/components/node/fields/use-flink.ts | 11 +++++ 8 files changed, 98 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index fcf292d66eda..869289f95f27 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,8 @@ dolphinscheduler-master/logs dolphinscheduler-api/logs __pycache__ ds_schema_check_test +.claude +.zcf/ +.spec-workflow/ +.serena/ +**/CLAUDE.md \ No newline at end of file diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java index 9c1cf8967f52..3322bb3b7ef4 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink-stream/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java @@ -81,8 +81,9 @@ public void testRunJarInClusterMode() throws Exception { List commandLine1 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // Default: shutdownOnAttachedExit is null/false, should NOT include -sae Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine1)); flinkParameters.setFlinkVersion("<1.10"); @@ -90,7 +91,7 @@ public void testRunJarInClusterMode() throws Exception { FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine2)); flinkParameters.setFlinkVersion(">=1.12"); @@ -98,7 +99,7 @@ public void testRunJarInClusterMode() throws Exception { FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine3)); } @@ -107,8 +108,9 @@ public void testRunJarInLocalMode() throws Exception { FlinkStreamParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.LOCAL); List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // Default: shutdownOnAttachedExit is null/false, should NOT include -sae Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine)); } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java index 385a683631b3..622535de9774 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java @@ -267,8 +267,8 @@ private static List buildRunCommandLineForOthers(TaskExecutionContext ta // If the job is submitted in attached mode, perform a best-effort cluster shutdown when the CLI is terminated // abruptly // The task status will be synchronized with the cluster job status - // Note: -sae should NOT be used for APPLICATION mode, as it runs in detached mode on YARN - if (deployMode != FlinkDeployMode.APPLICATION) { + // Note: This parameter is now configurable via UI, default is false (disabled) + if (Boolean.TRUE.equals(flinkParameters.getShutdownOnAttachedExit())) { args.add(FlinkConstants.FLINK_SHUTDOWN_ON_ATTACHED_EXIT); // -sae } diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkParameters.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkParameters.java index 61ad5d47724a..712de2c27ae5 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkParameters.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkParameters.java @@ -114,6 +114,21 @@ public class FlinkParameters extends AbstractParameters { */ private String rawScript; + /** + * Shutdown on attached exit (-sae parameter) + * + *

When enabled, Flink CLI will attempt to shutdown the cluster when the CLI + * terminates abruptly. This is only suitable for attached mode (CLUSTER/LOCAL). + * + *

For APPLICATION mode, this should typically be disabled as the job runs + * in detached mode on YARN. + * + *

Default: false (disabled for safety) + * + * @see FlinkArgsUtils#buildRunCommandLine + */ + private Boolean shutdownOnAttachedExit; + public ResourceInfo getMainJar() { return mainJar; } @@ -250,6 +265,14 @@ public void setRawScript(String rawScript) { this.rawScript = rawScript; } + public Boolean getShutdownOnAttachedExit() { + return shutdownOnAttachedExit; + } + + public void setShutdownOnAttachedExit(Boolean shutdownOnAttachedExit) { + this.shutdownOnAttachedExit = shutdownOnAttachedExit; + } + @Override public boolean checkParameters() { /** diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java index 05935e526172..4a1aea919a4c 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/test/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtilsTest.java @@ -81,8 +81,9 @@ public void testRunJarInClusterMode() { List commandLine1 = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // Default: shutdownOnAttachedExit is null/false, should NOT include -sae Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine1)); flinkParameters.setFlinkVersion("<1.10"); @@ -90,7 +91,7 @@ public void testRunJarInClusterMode() { FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -m yarn-cluster -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine2)); flinkParameters.setFlinkVersion(">=1.12"); @@ -98,7 +99,7 @@ public void testRunJarInClusterMode() { FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine3)); } @@ -107,8 +108,48 @@ public void testRunJarInLocalMode() { FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.LOCAL); List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + // Default: shutdownOnAttachedExit is null/false, should NOT include -sae + Assertions.assertEquals( + "${FLINK_HOME}/bin/flink run -p 4 -c org.example.Main /opt/job.jar", + joinStringListWithSpace(commandLine)); + } + + @Test + public void testRunJarWithShutdownOnAttachedExitEnabled() { + FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER); + flinkParameters.setShutdownOnAttachedExit(true); // Explicitly enable + flinkParameters.setFlinkVersion(">=1.12"); + List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + + // When explicitly enabled, should include -sae parameter + Assertions.assertEquals( + "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", + joinStringListWithSpace(commandLine)); + } + + @Test + public void testRunJarWithShutdownOnAttachedExitDisabled() { + FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.CLUSTER); + flinkParameters.setShutdownOnAttachedExit(false); // Explicitly disable + flinkParameters.setFlinkVersion(">=1.12"); + List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + + // When explicitly disabled, should NOT include -sae parameter + Assertions.assertEquals( + "${FLINK_HOME}/bin/flink run -t yarn-per-job -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -c org.example.Main /opt/job.jar", + joinStringListWithSpace(commandLine)); + } + + @Test + public void testRunJarWithShutdownOnAttachedExitInApplicationMode() { + FlinkParameters flinkParameters = buildTestFlinkParametersWithDeployMode(FlinkDeployMode.APPLICATION); + flinkParameters.setShutdownOnAttachedExit(true); // Even if enabled + List commandLine = FlinkArgsUtils.buildRunCommandLine(buildTestTaskExecutionContext(), flinkParameters); + + // APPLICATION mode with shutdownOnAttachedExit=true should include -sae + // (User explicitly wants it, even though it may cause issues) Assertions.assertEquals( - "${FLINK_HOME}/bin/flink run -p 4 -sae -c org.example.Main /opt/job.jar", + "${FLINK_HOME}/bin/flink run-application -t yarn-application -ys 4 -ynm demo-app-name -yjm 1024m -ytm 1024m -p 4 -sae -c org.example.Main /opt/job.jar", joinStringListWithSpace(commandLine)); } diff --git a/dolphinscheduler-ui/src/locales/en_US/project.ts b/dolphinscheduler-ui/src/locales/en_US/project.ts index 916893b02a0c..8823c205a673 100644 --- a/dolphinscheduler-ui/src/locales/en_US/project.ts +++ b/dolphinscheduler-ui/src/locales/en_US/project.ts @@ -503,6 +503,9 @@ export default { 'set the complement task thread to a reasonable value to avoid too large impact on the server.', task_manager_number: 'TaskManager Number', task_manager_number_tips: 'Please enter TaskManager number', + shutdown_on_attached_exit: 'Shutdown On Attached Exit', + shutdown_on_attached_exit_tips: + 'Attempt to shutdown cluster when CLI terminates abruptly. Only suitable for attached mode, recommended to disable for APPLICATION mode', grpc_url: 'gRPC Url', grpc_url_tips: 'Please Enter gRPC Url', grpc_url_format_tips: diff --git a/dolphinscheduler-ui/src/locales/zh_CN/project.ts b/dolphinscheduler-ui/src/locales/zh_CN/project.ts index 46fd12e348fd..2a772c629a1e 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/project.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/project.ts @@ -489,6 +489,9 @@ export default { '如果存在大量任务需要补数时,可以利用自定义并行度将补数的任务线程设置成合理的数值,避免对服务器造成过大的影响', task_manager_number: 'TaskManager数量', task_manager_number_tips: '请输入TaskManager数量', + shutdown_on_attached_exit: 'Shutdown On Attached Exit', + shutdown_on_attached_exit_tips: + '当CLI异常终止时,尝试关闭集群。仅适用于attached模式,APPLICATION模式建议关闭', grpc_url: '请求地址', grpc_url_tips: '请输入请求地址(必填)', grpc_url_format_tips: '请求地址格式不正确, gRPC仅允许host:port格式', diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts index aaedf5d2aaa5..13c98670bf45 100644 --- a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts +++ b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts @@ -283,6 +283,17 @@ export function useFlink(model: { [field: string]: any }): IJsonItem[] { value: model.parallelism }, useYarnQueue(), + { + type: 'switch', + field: 'shutdownOnAttachedExit', + name: t('project.node.shutdown_on_attached_exit'), + span: 24, + props: { + 'checked-value': true, + 'unchecked-value': false + }, + value: false // Default: disabled + }, { type: 'input', field: 'mainArgs', From a3376adc9d4e91959f7ab3a4a6f8c967aa3d2485 Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 29 Jan 2026 15:54:36 +0800 Subject: [PATCH 3/4] style: remove unnecessary comments as review feedback - Remove unnecessary comment in FlinkArgsUtils.java line 270 - Remove unnecessary comment in use-flink.ts line 295 - Update .gitignore to remove AI tool directories --- .gitignore | 5 ----- .../dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java | 1 - .../views/projects/task/components/node/fields/use-flink.ts | 2 +- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 869289f95f27..fcf292d66eda 100644 --- a/.gitignore +++ b/.gitignore @@ -55,8 +55,3 @@ dolphinscheduler-master/logs dolphinscheduler-api/logs __pycache__ ds_schema_check_test -.claude -.zcf/ -.spec-workflow/ -.serena/ -**/CLAUDE.md \ No newline at end of file diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java index 622535de9774..e7526cba03d6 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-flink/src/main/java/org/apache/dolphinscheduler/plugin/task/flink/FlinkArgsUtils.java @@ -267,7 +267,6 @@ private static List buildRunCommandLineForOthers(TaskExecutionContext ta // If the job is submitted in attached mode, perform a best-effort cluster shutdown when the CLI is terminated // abruptly // The task status will be synchronized with the cluster job status - // Note: This parameter is now configurable via UI, default is false (disabled) if (Boolean.TRUE.equals(flinkParameters.getShutdownOnAttachedExit())) { args.add(FlinkConstants.FLINK_SHUTDOWN_ON_ATTACHED_EXIT); // -sae } diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts index 13c98670bf45..4a142b7aace8 100644 --- a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts +++ b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-flink.ts @@ -292,7 +292,7 @@ export function useFlink(model: { [field: string]: any }): IJsonItem[] { 'checked-value': true, 'unchecked-value': false }, - value: false // Default: disabled + value: false }, { type: 'input', From c4cc0da279b9007b93d87835a1c47c38d3ca65ad Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 29 Jan 2026 16:11:35 +0800 Subject: [PATCH 4/4] fix: add missing .value for ref access in dependencies-modal.tsx --- .../projects/components/dependencies/dependencies-modal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dolphinscheduler-ui/src/views/projects/components/dependencies/dependencies-modal.tsx b/dolphinscheduler-ui/src/views/projects/components/dependencies/dependencies-modal.tsx index 207673a2a837..e405f720a346 100644 --- a/dolphinscheduler-ui/src/views/projects/components/dependencies/dependencies-modal.tsx +++ b/dolphinscheduler-ui/src/views/projects/components/dependencies/dependencies-modal.tsx @@ -59,7 +59,7 @@ export default defineComponent({ } const cancelToHandle = () => { - ctx.emit('update:show', showRef) + ctx.emit('update:show', showRef.value) } const renderDownstreamDependencies = () => {