Cylc-flow: Traceback with cylc play and Cylc 7 workflows

Created on 20 Jul 2021  路  3Comments  路  Source: cylc/cylc-flow

If you try to cylc play a running Cylc 7 workflow (or a crashed one which has left the contact file behind) the following traceback appears:

KeyError: 'CYLC_WORKFLOW_PUBLISH_PORT'

We could grep out the CYLC_VERSION from the contact file.

Should check other commands too as it is likely all client commands fail with this traceback.

bug small

Most helpful comment

In particular do we want to lose the ability to kill Cylc 7 suites?

We can't support Cylc 7 suites from the Cylc 8 command line because the communications layer is completely different. Users can switch to the Cylc 7 command line CYLC_VERSION=7.8.6 cylc stop --kill <suite> to stop their workflows (depending on the presence and configuration of a wrapper script).

which was replaced with the new fancy scan.

Yeah, the new fancy scan allows us to filter out workflows by Cylc version which suppresses this issue.

All 3 comments

A very crude check suggests that the following scripts are affected:

broadcast
dump
get-workflow-version
kill
pause
ping
play
poll
reload
show
stop
trigger

(Check was)

#!/bin/bash

for script in $(cylc help all | awk '{print $1}'); do
    timeout 4 cylc $script cpbug 2> err 1> /dev/null
    if [[ $(grep CYLC_WORKFLOW_PUBLISH_PORT err) ]]; then
        echo $script
    fi
done

@oliver-sanders I think I have a fix which will cause a single failure if you try to run any of these commands against a Cylc 7 suite. Does that make sense for all these commands. In particular do we want to lose the ability to kill Cylc 7 suites?

This problem seems familiar... there was a similar problem with cylc scan solved by https://github.com/cylc/cylc-flow/pull/3509, which was replaced with the new fancy scan.

In particular do we want to lose the ability to kill Cylc 7 suites?

We can't support Cylc 7 suites from the Cylc 8 command line because the communications layer is completely different. Users can switch to the Cylc 7 command line CYLC_VERSION=7.8.6 cylc stop --kill <suite> to stop their workflows (depending on the presence and configuration of a wrapper script).

which was replaced with the new fancy scan.

Yeah, the new fancy scan allows us to filter out workflows by Cylc version which suppresses this issue.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kinow picture kinow  路  4Comments

dwsutherland picture dwsutherland  路  3Comments

kinow picture kinow  路  3Comments

kinow picture kinow  路  4Comments

hjoliver picture hjoliver  路  5Comments