ESMCI / ccs_config_cesm

CESM CIME Case Control System configuration files
3 stars 41 forks source link

config_machines.xml fails to validate in ccs_config_cesm0.0.87 with cime6.0.193 -- what version of cime needs to be used with it? #138

Closed ekluzek closed 6 months ago

ekluzek commented 7 months ago

I'm not sure what version of cime to use with ccs_config0.0.87 for a set of externals that will work together.

Wwith: ccs_config_cesm0.0.87 and latest master of cime (cime6.0.194-16-g102d408fb), but also in cime6.0.193. I don't see an update to the XSD file in cime, for a long time. I also don't see an issue or PR in cime about this as well.

It looks like the idea is to have NODENAME_REGEX set for all machines in the main config_machines.xml, and then each machine have a subdirectory for it with what's needed for just that machine. This is a great refactoring to do, just looks like some coordination needs to happen in cime.

./create_test SMS_Lm13.1x1_brazil.I2000Clm50FatesCruRsGs.casper_intel.clm-FatesCold -r . --no-build
ERROR: Command: '/usr/bin/xmllint --xinclude --noout --schema /glade/work/erik/ctsm_worktrees/external_updates/cime/CIME/data/config/xml_schemas/config_machines.xsd /glade/work/erik/ctsm_worktrees/external_updates/ccs_config/machines/config_machines.xml' failed with error '/glade/work/erik/ctsm_worktrees/external_updates/ccs_config/machines/config_machines.xml:52: element NODENAME_REGEX: Schemas validity error : Element 'NODENAME_REGEX': This element is not expected. Expected is ( machine ).
/glade/work/erik/ctsm_worktrees/external_updates/ccs_config/machines/config_machines.xml fails to validate' from dir '/glade/work/erik/ctsm_worktrees/external_updates/cime/scripts'
(ctsm_pylib) casper-login2 cime/scripts> /usr/bin/xmllint --xinclude --noout --schema /glade/work/erik/ctsm_worktrees/external_updates/cime/CIME/data/config/xml_schemas/config_machines.xsd /glade/work/erik/ctsm_worktrees/external_updates/ccs_config/machines/config_machines.xml
/glade/work/erik/ctsm_worktrees/external_updates/ccs_config/machines/config_machines.xml:52: element NODENAME_REGEX: Schemas validity error : Element 'NODENAME_REGEX': This element is not expected. Expected is ( machine ).
fischer-ncar commented 7 months ago

@ekluzek try cime6.0.196, it was commited a little bit ago.

ekluzek commented 7 months ago

Thanks @fischer-ncar, it does get further. The create_test works, but it fails on the build step, making namelists, missing a XML/LibXML.pm perl module.

Here's that error...

Calling /glade/work/erik/ctsm_worktrees/external_updates/components/cdeps/datm/cime_config/buildnml
2023-12-15 13:21:04 lnd
Create namelist for component clm
Calling /glade/work/erik/ctsm_worktrees/external_updates/cime_config/buildnml
WARNING: CLM is starting up from a cold state
ERROR: Command /glade/work/erik/ctsm_worktrees/external_updates/bld/build-namelist failed rc=2
out=
err=Can't locate XML/LibXML.pm in @INC (you may need to install the XML::LibXML module) (@INC entries checked: /glade/work/erik/ctsm_worktrees/external_updates/bld /glade/work/erik/ctsm_worktrees/external_updates/bld /glade/work/erik/ctsm_worktrees/external_updates/cime/utils/perl5lib /glade/work/erik/ctsm_worktrees/external_updates/bld /glade/u/apps/casper/23.10/opt/perl/lib/perl5/x86_64-linux-thread-multi /glade/u/apps/casper/23.10/opt/perl/lib/perl5 ///////////////////////////////////////////////////////////////////////////////////////glade/u/apps/casper/23.10/spack/opt/spack/perl/5.38.0/gcc/7.5.0/nbvg/lib/perl5 ///////////////////////////////////////////////////////////////////////////////////////glade/u/apps/casper/23.10/spack/opt/spack/perl/5.38.0/gcc/7.5.0/nbvg/lib/site_perl/5.38.0/x86_64-linux-thread-multi ///////////////////////////////////////////////////////////////////////////////////////glade/u/apps/casper/23.10/spack/opt/spack/perl/5.38.0/gcc/7.5.0/nbvg/lib/site_perl/5.38.0 ///////////////////////////////////////////////////////////////////////////////////////glade/u/apps/casper/23.10/spack/opt/spack/perl/5.38.0/gcc/7.5.0/nbvg/lib/5.38.0/x86_64-linux-thread-multi ///////////////////////////////////////////////////////////////////////////////////////glade/u/apps/casper/23.10/spack/opt/spack/perl/5.38.0/gcc/7.5.0/nbvg/lib/5.38.0) at /glade/work/erik/ctsm_worktrees/external_updates/cime/utils/perl5lib/Config/SetupTools.pm line 5.
BEGIN failed--compilation aborted at /glade/work/erik/ctsm_worktrees/external_updates/cime/utils/perl5lib/Config/SetupTools.pm line 5.
Compilation failed in require at /glade/work/erik/ctsm_worktrees/external_updates/bld/CLMBuildNamelist.pm line 421.

Just running preview_namelists (whether or not I source .env_mach_specific.csh), I see this..

./preview_namelists 
ERROR: module command /glade/u/apps/casper/23.10/spack/opt/spack/lmod/8.7.24/gcc/7.5.0/m4jx/lmod/lmod/libexec/lmod python load ncarenv/23.10 cmake/3.26.3 intel/2023.2.1 mkl/2023.2.0 openmpi/4.1.6 netcdf-mpi/4.9.2 parallel-netcdf/1.12.3 failed with message:
Lmod has detected the following error: The following module(s) are unknown: "intel/2023.2.1" "ncarenv/23.10" "cmake/3.26.3"

Please check the spelling or version number. Also try "module spider ..."
It is also possible your cache file is out-of-date; it may help to try:
  $ module --ignore_cache load "intel/2023.2.1" "ncarenv/23.10" "cmake/3.26.3"

Also make sure that all modulefiles written in TCL start with the string #%Module
lizziel commented 6 months ago

I ran into this problem as well. I fixed it by checkout cesm2_3_alpha16h instead. The configuration of externals in that version work.

jedwards4b commented 6 months ago

@ekluzek It seems like you've conflated two or more issues here. Please edit the issue name and indicate the problem you are currently trying to solve.

ekluzek commented 6 months ago

@jedwards4b OK I edited the introduction and the title.

Really what I want to know is what set of externals do I need to use with ccs_config0.0.87? The version I tried originally failed with the original message, and the suggested one failed in a different way. I don't see these as conflating separate issues because I get one failure with one version of cime and a different failure with a different version of cime. The question is what version of cime do I need to use to work for this version of ccs_config?

Normally, I can use CESM planned tags to see what externals should be used together, but in this case there aren't any planned tags that cover ccs_config that far out.

jedwards4b commented 6 months ago

ccs_config0.0.87 requires cime6.0.198 or newer - cime6.0.200 recommended it also requires cmeps0.14.47

ekluzek commented 6 months ago

@jedwards4b awesome, that is working for me, so closing.