Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

:expire trigger broken #5364

Closed
hjoliver opened this issue Feb 13, 2023 · 7 comments · Fixed by #5658
Closed

:expire trigger broken #5364

hjoliver opened this issue Feb 13, 2023 · 7 comments · Fixed by #5658
Assignees
Labels
Milestone

Comments

@hjoliver
Copy link
Member

hjoliver commented Feb 13, 2023

By broken I mean, it has no effect.

When implementing the spawn-on-demand scheduler, I think I must have forgotten about the :expired trigger, and hence removed expired tasks before triggering on that "output" (because an expired task does not have any other outputs).

@hjoliver
Copy link
Member Author

Per #5361 - we also need to consider required outputs of expired tasks.

@hjoliver
Copy link
Member Author

Oops:

1712 edf61d368c cylc/flow/task_pool.py (Hilary Oliver    2020-04-24 13:29:54 +1200 1712)   
          # TODO [...] expired states are useless due to immediate
          # removal under all circumstances [...]

@oliver-sanders oliver-sanders modified the milestones: cylc-8.1.2, cylc-8.1.3 Feb 16, 2023
@MetRonnie MetRonnie self-assigned this Mar 7, 2023
@MetRonnie
Copy link
Member

Have reproduced with this

[scheduling]
    initial cycle point = previous(T00)
    [[special tasks]]
        clock-expire = foo(PT0S)
    [[graph]]
        R1 = """
            slow => foo
            foo:expire => bar
        """
[runtime]
    [[slow]]
        script = sleep 1
    [[foo]]
        script = false
    [[bar]]

In Cylc 7, foo would expire immediately and slow and bar would run. In Cylc 8, slow runs first, then foo expires and bar does not run, the workflow shuts down. This happens in back-compat mode too.

@hjoliver
Copy link
Member Author

hjoliver commented Mar 9, 2023

@MetRonnie - have you started working on this? If not, I can post a fix pretty quickly.

@hjoliver
Copy link
Member Author

I'll take over this one, it appears @MetRonnie is not working on it...

@hjoliver hjoliver assigned hjoliver and unassigned MetRonnie Mar 15, 2023
@hjoliver hjoliver mentioned this issue Mar 15, 2023
8 tasks
@oliver-sanders oliver-sanders modified the milestones: cylc-8.1.3, cylc-8.1.4 Apr 20, 2023
@oliver-sanders oliver-sanders modified the milestones: cylc-8.1.4, cylc-8.1.x May 4, 2023
@oliver-sanders
Copy link
Member

Have had an issue reported where a task expired DURING its second try leaving behind a job in the submitted state which subsequently could not be killed (because the task isn't in the pool). Possibly related?

@hjoliver
Copy link
Member Author

Not related to the "expire trigger" as such, but a good point to note. We should not allow an already-active task to expire.

@hjoliver hjoliver modified the milestones: cylc-8.1.x, cylc-8.2.0 Jun 13, 2023
@oliver-sanders oliver-sanders modified the milestones: cylc-8.2.0, cylc-8.3.0 Jun 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants