Skip to content

Commit 9b21e87

Browse files
committed
fix(core): Continue WaitFor loop if tasks are not failed
close #6031
1 parent 93e7ff2 commit 9b21e87

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

core/src/main/java/io/kestra/plugin/core/flow/WaitFor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public boolean childTaskRunExecuted(Execution execution, TaskRun parentTaskRun)
209209
.stream()
210210
.filter(t -> t.getParentTaskRunId() != null
211211
&& t.getParentTaskRunId().equals(parentTaskRun.getId())
212-
&& t.getState().isSuccess()
212+
&& t.getState().isTerminated()
213213
).count() == tasks.size();
214214

215215
}

core/src/test/java/io/kestra/plugin/core/flow/WaitForCaseTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,11 @@ public void waitforMultipleTasksFailed() throws TimeoutException, QueueException
6161
assertThat(execution.getState().getCurrent(), is(State.Type.FAILED));
6262
assertThat(execution.getTaskRunList().getLast().attemptNumber(), is(1));
6363
}
64+
65+
public void waitForChildTaskWarning() throws TimeoutException, QueueException {
66+
Execution execution = runnerUtils.runOne(null, "io.kestra.tests", "waitfor-child-task-warning");
67+
68+
assertThat(execution.getState().getCurrent(), is(State.Type.FAILED));
69+
assertThat(execution.getTaskRunList().getLast().attemptNumber(), greaterThan(1));
70+
}
6471
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
id: waitfor-child-task-warning
2+
namespace: io.kestra.tests
3+
4+
tasks:
5+
- id: loop
6+
type: io.kestra.plugin.core.flow.WaitFor
7+
condition: "{{ outputs.check_migration_task.vars['status'] == 'FINISHED' }}"
8+
failOnMaxReached: true
9+
checkFrequency:
10+
interval: PT5S
11+
maxDuration: PT10S
12+
tasks:
13+
14+
## forcing a Warning
15+
- id: allow_failure
16+
type: io.kestra.plugin.scripts.shell.Commands
17+
taskRunner:
18+
type: io.kestra.plugin.core.runner.Process
19+
allowFailure: true
20+
commands:
21+
- exit 1
22+
23+
- id: check_migration_task
24+
type: io.kestra.plugin.scripts.shell.Commands
25+
taskRunner:
26+
type: io.kestra.plugin.scripts.runner.docker.Docker
27+
entryPoint: []
28+
containerImage: "ubuntu:latest"
29+
commands:
30+
- "echo '::{\"outputs\":{\"status\": \"INPROGRESS\"}}::'"

0 commit comments

Comments
 (0)