Skip to content

clock-expire: premature shutdown due to sequential xtriggers triggers #7103

@oliver-sanders

Description

@oliver-sanders

There is a bad interaction between sequential xtriggers and clock-expire which can result in premature shutdown.

Reproducible Example

[scheduling]
    initial cycle point = 2000
    [[special tasks]]
        clock-expire = a
    [[graph]]
        P1D = """
            @wall_clock => a => b => c
        """

[runtime]
    [[a]]
        completion = succeeded or expired
    [[b,c]]
$ cylc vip -N .
$ cylc validate /var/tmp/tmp.e74BWQakBa
Valid for cylc-8.6.1.dev
$ cylc install /var/tmp/tmp.e74BWQakBa
INSTALLED tmp.e74BWQakBa/run6 from /var/tmp/tmp.e74BWQakBa
$ cylc play -N tmp.e74BWQakBa/run6

 ▪ ■  Cylc Workflow Engine 8.6.1.dev
 ██   Copyright (C) 2008-2025 NIWA
▝▘    & British Crown (Met Office) & Contributors

INFO - Extracting job.sh to ~/cylc-run/tmp.e74BWQakBa/run6/.service/etc/job.sh
INFO - Workflow: tmp.e74BWQakBa/run6
INFO - Scheduler: url=tcp://... pid=...
INFO - Workflow publisher: url=tcp://...
INFO - Run: (re)start number=1, log rollover=1
INFO - Cylc version: 8.6.1.dev
INFO - Run mode: live
INFO - Initial point: 20000101T0000Z
INFO - Final point: None
INFO - Cold start from 20000101T0000Z
INFO - New flow: 1 (original flow from 20000101T0000Z) 2025-11-27T14:18:58
INFO - [20000101T0000Z/a:waiting(runahead)] => waiting
INFO - xtrigger succeeded: wall_clock = wall_clock(trigger_time=946684800)
INFO - [20000101T0000Z/a:waiting] => waiting(queued)
INFO - [20000102T0000Z/a:waiting(runahead)] => waiting
WARNING - [20000101T0000Z/a:waiting(queued)] (internal)expired
INFO - [20000101T0000Z/a:waiting(queued)] => expired
WARNING - [20000102T0000Z/a:waiting] (internal)expired
INFO - [20000102T0000Z/a:waiting] => expired
INFO - Workflow shutting down - AUTOMATIC
INFO - DONE

Workaround

Define a wall_clock xtrigger and set sequential=False.

Metadata

Metadata

Assignees

Labels

bugSomething is wrong :(

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions