Fcm-make2.cfg file not found

Hi Team,

I’m running into this error in jobs that have previously run… It has run on the persistent session before (last year), so I don’t think it is to do with that, but I could be wrong!

[FAIL] fcm-make2.cfg: no such configuration file

[FAIL] fcm make -C /home/563/slf563/cylc-run/u-cc407/share/fcm_make_um -n 2 -j 8 -f fcm-make2.cfg # return-code=2

2024-02-14T03:46:12Z CRITICAL - failed/EXIT

Has anyone come across this also/or know how to find this file again!? Hopefully it is an easy fix!

Thanks,
Sonya

Hi Sonya, just as a first check – are you running the job from a persistent session (instead of accidentally running from a non-persistent session)? Running from a non-persistent session throws up errors …

The other thing to be aware of is that there is a two-step make procedure. In some suites the two-step make procedure has been changed to a single make step. Is it possible that something has changed?

Hello - thanks Chermelle. I am fairly sure I am running in a persistent session, though maybe I have stuffed that up… Perhaps I need to read through those docs again. This is an oldish suite now (an AM2 suite), so should still require a two step build… the first fcm-make step runs smoothly with no issue…

Sorry to ask that question - I remember getting strange errors when I ran before setting up the persistent session. Just a side-note, I find that I need to ssh -Y directly into my persistent session to get it to work. You could give that a try …

1 Like

Try adding

mirror.target = $CYLC_SUITE_SHARE_DIR/$ROSE_TASK_NAME
mirror.prop{config-file.name} = 2

to the end of app/fcm_make_um/file/fcm-make.cfg. See details below.

Another thing to check is that any fcm keywords that your suite uses, either directly or indirectly, are using the MOSRS Subversion mirror rather than using MOSRS directly. The keywords should look like *.xm_* rather than *.x_*

Details from @MartinDix for a previous similar problem.

On 30 Aug 2023, at 4:39 pm, Martin Dix <Martin.Dix@anu.edu.au> wrote:

Working through rose shows that when the target host is different it calls fcm make with arguments like

mirror.target=accessdev:cylc-run/u-cz168/share/fcm_make_um mirror.prop{config-file.name}=2

These get combined with fcm.cfg to create fcm-make-as-parsed.cfg.

Rose looks at which host the make2 step is running on to decide whether the mirror is necessary. If it’s localhost it doesn’t set these arguments and so mirror.target etc isn’t set. It tries very hard to work out if it’s the same host, e.g. eventually checks against a list created by this get_local_host_strs function

The best work around I’ve found is add

mirror.target = $CYLC_SUITE_SHARE_DIR/$ROSE_TASK_NAME
mirror.prop{config-file.name} = 2

at the end of app/fcm_make_um/file/fcm-make.cfg. This would be ok for CM2 suites but would probably mess up the portability of things like the RAL suites.

2 Likes

Thanks so much for this! A great help

The long-term solution is to switch FCM make builds to using one-stage builds (no fcm-make2 task).

How to do this will vary between suites, for the RNS try setting ONE_STEP_BUILD=true in site/nci-gadi/suite-vars.rc.

2 Likes