apache/dolphinscheduler · error · TaskException
The current Mlflow task has been interrupted
Error message
The current Mlflow task has been interrupted
What it means
InterruptedException was caught while the MLflow shell command ran — the task was killed by the master/user and the waiting worker thread was interrupted. The handler restores the interrupt flag, sets the failure exit code, and rethrows so the instance is recorded as interrupted rather than completed.
Source
Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-mlflow/src/main/java/org/apache/dolphinscheduler/plugin/task/mlflow/MlflowTask.java:121
// construct process
IShellInterceptorBuilder<?, ?> shellActuatorBuilder = ShellInterceptorBuilderFactory.newBuilder()
.properties(ParameterUtils.convert(getParamsMap()))
.appendScript(buildCommand());
TaskResponse commandExecuteResult = shellCommandExecutor.run(shellActuatorBuilder, taskCallBack);
int exitCode;
if (mlflowParameters.getIsDeployDocker()) {
exitCode = checkDockerHealth();
} else {
exitCode = commandExecuteResult.getExitStatusCode();
}
setExitStatusCode(exitCode);
setProcessId(commandExecuteResult.getProcessId());
mlflowParameters.dealOutParam(shellCommandExecutor.getTaskOutputParams());
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
log.error("The current Mlflow task has been interrupted", e);
setExitStatusCode(EXIT_CODE_FAILURE);
throw new TaskException("The current Mlflow task has been interrupted", e);
} catch (Exception e) {
log.error("Mlflow task error", e);
setExitStatusCode(EXIT_CODE_FAILURE);
throw new TaskException("Execute Mlflow task failed", e);
}
}
@Override
public void cancel() throws TaskException {
// cancel process
try {
shellCommandExecutor.cancelApplication();
} catch (Exception e) {
throw new TaskException("cancel application error", e);
}
}
public String buildCommand() {View on GitHub (pinned to 02eac45a1b)
Solutions
- No fix needed when the kill was intentional
- If interrupts are spurious, check worker restarts/thread pool shutdown events
- Ensure the mlflow process is actually terminated by the cancel path to avoid orphans
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at dolphinscheduler-task-plugin/dolphinscheduler-task-mlflow/src/main/java/org/apache/dolphinscheduler/plugin/task/mlflow/MlflowTask.java:121 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/c40200397ae239d0.
Report an issue: GitHub.