# Why is run held after (1) kill and then (2) trigger

**URL:** <https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744>\
**Category:** Cylc Support\
**Created:** [September 1, 2023, 12:40am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744 "2023-09-01T00:40:13Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jonnyhtw](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/jonnyhtw/32/232_2.png) [@jonnyhtw](https://cylc.discourse.group/u/jonnyhtw)\
**Post date:** [September 1, 2023, 12:40am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744/1 "2023-09-01T00:40:13Z")

</div>

hi there,

in the course of my model development, i frequently need to kill tasks and then re-trigger them. i’m just wondering why whenever i do this, the newly triggered task runs but with the ‘held’ sign on it? i would’ve thought that triggering a task would imply that it doesn’t want to be help any more?

cheers,

![image](https://global.discourse-cdn.com/free1/uploads/cylc1/original/1X/781e748ff4e98439082164ca72b3202b3bc4da3b.png)

---

<div class="post-metadata">

**Author:** ![hilary.j.oliver](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/hilary.j.oliver/32/4_2.png) [@hilary.j.oliver](https://cylc.discourse.group/u/hilary.j.oliver)\
**Post date:** [September 1, 2023, 1:45am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744/2 "2023-09-01T01:45:37Z")

</div>

Good question!

In Cylc 8 any task - even running ones - can be “held”. It’s to do with the conceptual separation of task and job.

A held task will not submit a job to run when it becomes ready to submit. But a task can submit multiple jobs (by automatic retry, manual triggering, or new flows through the graph). So a held running task will not submit its **next** job unless released or manually triggered.

The connection with job kill is this:

If a task has retries configured for failure, you probably don’t want them to activate immediately if you forcibly kill it. So a killed tasks automatically gets held. In the unlikely event that you do want retries to go off in response to the job kill, just release the task.

Hilary

---

<div class="post-metadata">

**Author:** ![jonnyhtw](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/jonnyhtw/32/232_2.png) [@jonnyhtw](https://cylc.discourse.group/u/jonnyhtw)\
**Post date:** [September 1, 2023, 2:00am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744/3 "2023-09-01T02:00:21Z")

</div>

ah nice, thanks for that.

just to be sure, in cylc speak, a job is an instance of a task, right?

so a task could be called `foo` and the jobs are 01, 02, …, NN?

cheers

---

<div class="post-metadata">

**Author:** ![hilary.j.oliver](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/hilary.j.oliver/32/4_2.png) [@hilary.j.oliver](https://cylc.discourse.group/u/hilary.j.oliver)\
**Post date:** [September 1, 2023, 3:38am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744/4 "2023-09-01T03:38:31Z")

</div>

Well, strictly speaking you need cycle point in there as well, for cycling workflows.

The task `foo` has an instance in each cycle point `1/foo`, `2/foo`, `3/foo`, etc. (for integer cycling; otherwise `20230101T00Z/foo` etc.).

Then, each task instance can submit zero or more jobs e.g. `3/foo/01`, `3/foo/02`, …

(That hierarchy is reflected in the task ID and log directory too).

---

<div class="post-metadata">

**Author:** ![jonnyhtw](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/jonnyhtw/32/232_2.png) [@jonnyhtw](https://cylc.discourse.group/u/jonnyhtw)\
**Post date:** [September 4, 2023, 12:02am UTC](https://cylc.discourse.group/t/why-is-run-held-after-1-kill-and-then-2-trigger/744/5 "2023-09-04T00:02:41Z")

</div>

ah yeah of course, thanks for the extra info! 🙂
