A cylc trigger command issued after workflow completion is received, and enacted, however, the workflow shuts down anyway.
How Cylc should handle a command issued at this stage is of course debatable.
The reason that this is a bug is that the scheduler does enact the trigger, performing the remove required for it to happen causing the scheduler to shut down in an inconsistent state.
If you restart the, reputably completed workflow, the triggered task will actually run! In other words the workflow shut down as completed despite having a waiting task in the pool.
This is likely an event loop bug. Reported with Cylc 8.6.5.
Reproducible Example
[scheduling]
[[graph]]
R1 = a => b
[runtime]
[[a]]
script = true
[[b]]
script = true
[[[events]]]
succeeded handlers = cylc trigger "%(workflow)s//1/a"
Cold start:
$ cylc vip
...
INFO - [1/a:waiting(runahead)] => waiting
INFO - [1/a/01:running] => succeeded
...
INFO - [1/b:waiting(runahead)] => waiting
INFO - [1/b/01:running] => succeeded
...
INFO - Command "force_trigger_tasks" received. ID=7f16d619-4727-4de5-a373-2c2099a66efe
force_trigger_tasks(flow=[], flow_wait=False, on_resume=False, tasks=['1/a'])
INFO - Removed tasks: 1/a (flows=1)
INFO - [1/a:waiting(runahead)] => waiting
INFO - Command "force_trigger_tasks" actioned. ID=7f16d619-4727-4de5-a373-2c2099a66efe
INFO - Workflow shutting down - AUTOMATIC
INFO - DONE
The previously triggered task does run if/when the workflow is restarted:
$ cylc play
...
INFO - [1/a:waiting(queued)] => preparing(queued)
INFO - [1/a/02:running] => succeeded
INFO - Workflow shutting down - AUTOMATIC
INFO - DONE
A
cylc triggercommand issued after workflow completion is received, and enacted, however, the workflow shuts down anyway.How Cylc should handle a command issued at this stage is of course debatable.
The reason that this is a bug is that the scheduler does enact the trigger, performing the remove required for it to happen causing the scheduler to shut down in an inconsistent state.
If you restart the, reputably completed workflow, the triggered task will actually run! In other words the workflow shut down as completed despite having a waiting task in the pool.
This is likely an event loop bug. Reported with Cylc 8.6.5.
Reproducible Example
Cold start:
The previously triggered task does run if/when the workflow is restarted: