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.
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.
Most helpful comment
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).Yeah, the new fancy scan allows us to filter out workflows by Cylc version which suppresses this issue.