How to smoothly upgrade cylc/rose versions

Dear all,

I’d appreciate a hint. On my old production system I am running all my operational suites with cylc-7.8.1 and rose-2019.01.0. These suites will soon move over to a new production system, where I will only install the latest versions of cylc-7.9.1 and rose-2019.01.3. To smooth the transition I would like to test the suites on the old system and upgrade everything.
In terms of software installation I have completed everything. On every system (old and new, cylc-hosts and HPC-hosts) the versions are reported as

$ cylc --version
7.9.1
$ rose --version
Rose 2019.01.3 (/opt/rose/rose-2019.01.3)

Now to my question. How do I upgrade the running suites with the least amount of disruption?

I stopped a suite and restarted it, but the suite still picks up the old cylc version:

$ rose suite-run --restart
[INFO] export CYLC_VERSION=7.8.1

What’s the best way to get the suite to pick up the new cylc-rose versions (which doesn’t requite a full stop/cold-start)?

Thanks

Hello all,

I found a description of what to do at http://cms.ncas.ac.uk/wiki/RoseCylc/Hints
I quote the important bits from that page with my own comments:

Switching versions of Rose/cylc for a running suite

First you need to stop the suite via the GUI or with: cylc stop --name=SUITE, where SUITE is the suite name. I stopped the suite from the gcontrol window.

Wait for the suite to complete cleanly:

  • Look at the end of ~/cylc-run/SUITE/log/suite/log, which should tell you the suite is shutting down with a reason.

Modify the CYLC_VERSION and ROSE_VERSION variables in ~/cylc-run/SUITE/log/rose-suite-run.conf.

Ensure the Cylc and Rose versions in your current environment match the version you are trying to use. Run rose --version and cylc --version.

Then restart the suite with: rose suite-restart --name=SUITE. (Note you should not run rose suite-run --restart).

This worked for me :slight_smile:

Hi,

If using Cylc standalone a suite can be upgraded like so (assuming you are using a wrapper script):

$ cylc stop <suite>
$ CYLC_VERSION=new-version cylc restart <suite>

However, if you are using Cylc with Rose there are some extra steps as Rose will try and restart a suite continuing with the old version of Cylc. Rose uses the CYLC_VERSION and ROSE_VERSION environment variables in the log/rose-suite-run.conf file so you will need to edit these before restarting. Also check the suite.rc as you may find these environment variables set there too.

$ rose suite-shutdown
$ rose suite-restart

This disparity will disappear in Cylc8 making the upgrade process a lot easier.

2 Likes