Skip to content

Commit

Permalink
back-compat: submitted is implicitly required
Browse files Browse the repository at this point in the history
* Closes cylc#5771.
* Ensure that submit-failed tasks are marked as incomplete.
* See also cylc#5755
  • Loading branch information
oliver-sanders committed Oct 18, 2023
1 parent 0655c91 commit 0ac7db4
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cylc/flow/task_pool.py
Original file line number Diff line number Diff line change
Expand Up @@ -1402,7 +1402,7 @@ def remove_if_complete(self, itask):
(C7 failed tasks don't count toward runahead limit)
"""
if cylc.flow.flags.cylc7_back_compat:
if not itask.state(TASK_STATUS_FAILED):
if not itask.state(TASK_STATUS_FAILED, TASK_OUTPUT_SUBMIT_FAILED):
self.remove(itask, 'finished')
if self.compute_runahead():
self.release_runahead_tasks()
Expand Down
59 changes: 59 additions & 0 deletions tests/functional/spawn-on-demand/19-submitted-compat.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# THIS FILE IS PART OF THE CYLC WORKFLOW ENGINE.
# Copyright (C) NIWA & British Crown (Met Office) & Contributors.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#-------------------------------------------------------------------------------

# Test the submitted and submit-failed triggers work correctly in back-compat
# mode. See https://github.com/cylc/cylc-flow/issues/5771

. "$(dirname "$0")/test_header"
set_test_number 4

init_workflow "${TEST_NAME_BASE}" << __FLOW__
[scheduler]
[[events]]
abort on stall timeout = True
stall timeout = PT0S
[scheduling]
[[graph]]
R1 = """
a
b
"""
[runtime]
[[a]] # should complete
[[b]] # should not complete
platform = broken
__FLOW__

mv $WORKFLOW_RUN_DIR/flow.cylc $WORKFLOW_RUN_DIR/suite.rc

workflow_run_fail "${TEST_NAME_BASE}-run" \
cylc play "${WORKFLOW_NAME}" --no-detach

grep_workflow_log_ok \
"${TEST_NAME_BASE}-back-compat" \
'Backward compatibility mode ON'
grep_workflow_log_ok \
"${TEST_NAME_BASE}-a-complete" \
'\[1/a running job:01 flows:1\] => succeeded'
grep_workflow_log_ok \
"${TEST_NAME_BASE}-b-incomplete" \
"1/b did not complete required outputs: \['submitted', 'succeeded'\]"

purge

0 comments on commit 0ac7db4

Please sign in to comment.