Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIME xmlchange error is misleading #1585

Closed
cameronsmith1 opened this issue Jun 15, 2017 · 10 comments · Fixed by #1788
Closed

CIME xmlchange error is misleading #1585

cameronsmith1 opened this issue Jun 15, 2017 · 10 comments · Fixed by #1788

Comments

@cameronsmith1
Copy link
Contributor

For the watercycle simulations we normally want the COSP output, so we include the following in run_acme.template.csh

xmlchange --id CAM_CONFIG_OPTS --append -val " -cosp"

However, I needed to run an I-compset (land only), and CAM_CONFIG_OPTS is not included in env_build.xml, so I got the following errors

(295) xmlchange --id CAM_CONFIG_OPTS --append -val " -cosp"
No handlers could be found for logger "CIME.utils"
ERROR: Unknown type 'None'

I assume this is because CAM_CONFIG_OPTS isn't present in env_build.xml for I-compsets, so this error message is unhelpful.

Strangely, the error message was different when I used the alternative to -val with a double dash.

(296) xmlchange --id CAM_CONFIG_OPTS --append --val " -cosp" 
ERROR: Unknown type 'None'

Is it possible for xmlchange to give better error messages under these circumstances?

@singhbalwinder
Copy link
Contributor

I bump into these errors often where the error message is not at all helpful. I eventually go into scripts to find out what is going on. Most of the times, I know where to look for but there are times when I had to invest a lot of time debugging. It will be great if we can gather cases where we get unhelpful error messages and find a way to remedy that. It will also help greatly once the code is in the public domain.

@cameronsmith1
Copy link
Contributor Author

@singhbalwinder , I agree. This error showed up in a context that took a while to track down. I spent about 3 hours tracking it down and reporting it. (Part of the problem was that I initially expected the problem was related to something else, because of the unhelpful error message.)

IMHO, the things that would have really helped, in order of generality and ease of implementation are:

  1. Including the name of the script producing the error (eg, 'xmlchange'),
  2. Some hint of the nature of the problem (eg, 'variable not in file')
  3. Specificity of the contents of the variables (eg, 'variable = CAM_CONFIG_OPTS, file = env_build.xml')

@jgfouca
Copy link
Member

jgfouca commented Jun 20, 2017

@cameronsmith1 sorry about that, I will try to improve the error message. Can you tell me how you set up the case where you saw this?

@cameronsmith1
Copy link
Contributor Author

It was a compset with a data atmosphere, and the script had the xmlchange command for CAM_CONFIG_OPTS, which doesn't exist for a data atmosphere. Do you want the run_acme script that recreates the error?

@jgfouca
Copy link
Member

jgfouca commented Jun 21, 2017

@cameronsmith1 I just need the compset and grid that you used

@cameronsmith1
Copy link
Contributor Author

The compset and grid were:

set compset        = IM1850CLM45BC
set resolution     = ne30_oECv3

@rljacob rljacob added the CIME label Jun 29, 2017
jgfouca pushed a commit that referenced this issue Jul 14, 2017
Updated grid aliases in  cesm/config_grids.xml
@cameronsmith1
Copy link
Contributor Author

I am back from vacation. Did this issue (improved error messages in xmlchange) get resolved?

@jgfouca
Copy link
Member

jgfouca commented Jul 19, 2017

@cameronsmith1 , no but I will try to get this done soon in ESMCI CIME.

@cameronsmith1
Copy link
Contributor Author

Thanks, Jim.

@jgfouca
Copy link
Member

jgfouca commented Aug 16, 2017

Fixed in ESMCI:

ESMCI/cime#1818

Note, this fix will NOT come in with #1643

jgfouca added a commit that referenced this issue Oct 3, 2017
New user interface features:
option --skip-preview-namelist to case.submit to skip calling preview_namelist during case.run
option -M MAIL_USER, --mail-user MAIL_USER to case.submit to set an email for batch system notification
option -m {never,all,begin,end,fail}, --mail-type {never,all,begin,end,fail} to case.submit for when the batch system should send email.
manage_case renamed to more accurate query_config and usage/arguments made easier and output more informative.
Add --pesfile option to create_test
New case.qstatus tool
Allow user to adjust ulimits
Add message at end of successful build
Add new user-mods option to create_clone
New ways to select queue in config_batch.xml
scripts_regression_tests.py now has --compiler and --mpilibs option
new case variables controlling spare nodes (for failing nodes workaround)

User interface bug fixes:
xmlquery options --file and --listall now work together.
xmlquery options clarified and help message improved.
Improve error message for passing incorrect grid alias to create_newcase.
Improve error messages from xmlchange

Removed user features:
Remove long term archiving support. "case.lt_archive" no longer in caseroot.

Other changes to case control system:
Improve ERR test.
New ERS2 test
Add IRT test
Implement NCR with SystemTestsCompareTwo
Rewrite ERP with SystemTestsCompareTwo
Convert the ERR and ERRI test to the compare2 framework
Fix SEQ test on skybridge
new case.test --reset option to manually reset a test to initial conditions.
TOTAL_CORES was inaccurate so remove it.
Only create rest directories if they are going to be populated
get_timing.py should use largest ncpl value, not assume it's the atm value
Improve comment for BASELINE status in TestStatus
Better handling of fails in the build (don't print a python stacktrace)
Add a new directory testmod that creates cpl history files on a daily basis and thereby permits answer changes to be compared more easily.
Add ability for create_test to infer non-default machine from testname
Change all python2 style strings to python3 style strings
Improve handling of hist comparisons in TestStatus.log
version 3.0 schema for entry_id files
Downscale build parallelism on small machines (so we don't overload it)
Bring bless_test_results behavior into an exact match with create_test -g
lcdf4 flag does apply to pnetcdf.
Replace cdf64 logical with PIO_NETCDF_FORMAT character variable
Refactor how spare nodes get computed
Preserve test order in test_scheduler
Allow queue selection by node count instead of task count
Improve error check for non-python sub processes

Data model changes:
Refactored data models
Use %CPLHIST for DATM coupler hist forcing
Add support for data model to read multiple time slices at once
New aquaplanet capability: adds aquaplanet capability to DOCN where the input is from a file rather than analytic; adds new A compsets to the driver config_compsets.xml that have different DOCN functionality: ADSOM - DOCN SOM, ADSOMAQP - DOCN aquaplanet SOM, ADAQP3 - DOCN analytic aquaplanet (mode 3), ADAQFILE - DOCN aquaplanet from file
DATM updates for clm
Change SIAF compset name in dice to IAF to be consistent with other components

Coupler/driver changes:
Map SMB from lnd to glc using bilinear mapping with a conservation correction
Remove more cesm refs in filenames.
seq_comm_mct code cleanup
Implementation of multiple couplers within multi-instance runs.

Other:
User's guide rst files now in cime/doc directory
Get PFUnit working on melvin
Homebrew generic mac port

Fixes #1255
Fixes #1424
Fixes #1426
Fixes #1573
Fixes #1576
Fixes #1585

* jgfouca/update_to_cime_5.3.0.34: (932 commits)
  One more short term archiver fix
  Fix merge conflicts, should mostly work
  cetus xml fix
  Hack to get PET test to work on chama
  Fix HOMME Cmake pointing to wrong cime area
  Update run_acme version
  Fixes for AQUAP
  Removes long term archiving from run_acme
  Move xml compiler and mpilib tags from env and command elements This is required for the new xml schema requirements; compiler and mpilib tags should be in the modules and environment_variables elements rather than their members
  Cherry-pick fixes from older merge branch
  cime_developer now working on melvin
  new git pelayout doc
  Update ChangeLog
  Change atm_grid "48x96" to T31 to match the model_grid_alias that is actually being used.
  Minor fix
  Fix mistake
  Better encapsulation of common calls (create_test, wait_for_tests)
  Add a timeout option to wait_for_tests
  update to sphinx documentation
  Restore task_count
  ...
jgfouca added a commit that referenced this issue Oct 11, 2017
Update CIME to 5.3.0alpha34

New user interface features:
option --skip-preview-namelist to case.submit to skip calling preview_namelist during case.run
option -M MAIL_USER, --mail-user MAIL_USER to case.submit to set an email for batch system notification
option -m {never,all,begin,end,fail}, --mail-type {never,all,begin,end,fail} to case.submit for when the batch system should send email.
manage_case renamed to more accurate query_config and usage/arguments made easier and output more informative.
Add --pesfile option to create_test
New case.qstatus tool
Allow user to adjust ulimits
Add message at end of successful build
Add new user-mods option to create_clone
New ways to select queue in config_batch.xml
scripts_regression_tests.py now has --compiler and --mpilibs option
new case variables controlling spare nodes (for failing nodes workaround)

User interface bug fixes:
xmlquery options --file and --listall now work together.
xmlquery options clarified and help message improved.
Improve error message for passing incorrect grid alias to create_newcase.
Improve error messages from xmlchange

Removed user features:
Remove long term archiving support. "case.lt_archive" no longer in caseroot.

Other changes to case control system:
Improve ERR test.
New ERS2 test
Add IRT test
Implement NCR with SystemTestsCompareTwo
Rewrite ERP with SystemTestsCompareTwo
Convert the ERR and ERRI test to the compare2 framework
Fix SEQ test on skybridge
new case.test --reset option to manually reset a test to initial conditions.
TOTAL_CORES was inaccurate so remove it.
Only create rest directories if they are going to be populated
get_timing.py should use largest ncpl value, not assume it's the atm value
Improve comment for BASELINE status in TestStatus
Better handling of fails in the build (don't print a python stacktrace)
Add a new directory testmod that creates cpl history files on a daily basis and thereby permits answer changes to be compared more easily.
Add ability for create_test to infer non-default machine from testname
Change all python2 style strings to python3 style strings
Improve handling of hist comparisons in TestStatus.log
version 3.0 schema for entry_id files
Downscale build parallelism on small machines (so we don't overload it)
Bring bless_test_results behavior into an exact match with create_test -g
lcdf4 flag does apply to pnetcdf.
Replace cdf64 logical with PIO_NETCDF_FORMAT character variable
Refactor how spare nodes get computed
Preserve test order in test_scheduler
Allow queue selection by node count instead of task count
Improve error check for non-python sub processes

Data model changes:
Refactored data models
Use %CPLHIST for DATM coupler hist forcing
Add support for data model to read multiple time slices at once
New aquaplanet capability: adds aquaplanet capability to DOCN where the input is from a file rather than analytic; adds new A compsets to the driver config_compsets.xml that have different DOCN functionality: ADSOM - DOCN SOM, ADSOMAQP - DOCN aquaplanet SOM, ADAQP3 - DOCN analytic aquaplanet (mode 3), ADAQFILE - DOCN aquaplanet from file
DATM updates for clm
Change SIAF compset name in dice to IAF to be consistent with other components

Coupler/driver changes:
Map SMB from lnd to glc using bilinear mapping with a conservation correction
Remove more cesm refs in filenames.
seq_comm_mct code cleanup
Implementation of multiple couplers within multi-instance runs.

Other:
User's guide rst files now in cime/doc directory
Get PFUnit working on melvin
Homebrew generic mac port

Fixes #1255
Fixes #1424
Fixes #1426
Fixes #1573
Fixes #1576
Fixes #1585

* jgfouca/update_to_cime_5.3.0.34: (942 commits)
  Apply patch for cpl to avoid hangs
  Adjust ne4 PE layout on Anvil
  Reset configpes_all to what's on master
  Cherry-pick wait_for_tests fix from ESMCI
  Fix xmllint errors on Titan
  Convert attribute DEBUG to uppercase
  Update ne4-wcycl PEs on Anvil
  Fix the rest of the pylint errors for case_st_archive
  Fix jenkins script mistake made during conflict resolution.
  short term archiver get_datenames call for last restarts fixed
  One more short term archiver fix
  Fix merge conflicts, should mostly work
  cetus xml fix
  Hack to get PET test to work on chama
  Fix HOMME Cmake pointing to wrong cime area
  Update run_acme version
  Fixes for AQUAP
  Removes long term archiving from run_acme
  Move xml compiler and mpilib tags from env and command elements This is required for the new xml schema requirements; compiler and mpilib tags should be in the modules and environment_variables elements rather than their members
  Cherry-pick fixes from older merge branch
  ...
jgfouca added a commit that referenced this issue Oct 12, 2017
Update CIME to 5.3.0alpha34

New user interface features:
option --skip-preview-namelist to case.submit to skip calling preview_namelist during case.run
option -M MAIL_USER, --mail-user MAIL_USER to case.submit to set an email for batch system notification
option -m {never,all,begin,end,fail}, --mail-type {never,all,begin,end,fail} to case.submit for when the batch system should send email.
manage_case renamed to more accurate query_config and usage/arguments made easier and output more informative.
Add --pesfile option to create_test
New case.qstatus tool
Allow user to adjust ulimits
Add message at end of successful build
Add new user-mods option to create_clone
New ways to select queue in config_batch.xml
scripts_regression_tests.py now has --compiler and --mpilibs option
new case variables controlling spare nodes (for failing nodes workaround)

User interface bug fixes:
xmlquery options --file and --listall now work together.
xmlquery options clarified and help message improved.
Improve error message for passing incorrect grid alias to create_newcase.
Improve error messages from xmlchange

Removed user features:
Remove long term archiving support. "case.lt_archive" no longer in caseroot.

Other changes to case control system:
Improve ERR test.
New ERS2 test
Add IRT test
Implement NCR with SystemTestsCompareTwo
Rewrite ERP with SystemTestsCompareTwo
Convert the ERR and ERRI test to the compare2 framework
Fix SEQ test on skybridge
new case.test --reset option to manually reset a test to initial conditions.
TOTAL_CORES was inaccurate so remove it.
Only create rest directories if they are going to be populated
get_timing.py should use largest ncpl value, not assume it's the atm value
Improve comment for BASELINE status in TestStatus
Better handling of fails in the build (don't print a python stacktrace)
Add a new directory testmod that creates cpl history files on a daily basis and thereby permits answer changes to be compared more easily.
Add ability for create_test to infer non-default machine from testname
Change all python2 style strings to python3 style strings
Improve handling of hist comparisons in TestStatus.log
version 3.0 schema for entry_id files
Downscale build parallelism on small machines (so we don't overload it)
Bring bless_test_results behavior into an exact match with create_test -g
lcdf4 flag does apply to pnetcdf.
Replace cdf64 logical with PIO_NETCDF_FORMAT character variable
Refactor how spare nodes get computed
Preserve test order in test_scheduler
Allow queue selection by node count instead of task count
Improve error check for non-python sub processes

Data model changes:
Refactored data models
Use %CPLHIST for DATM coupler hist forcing
Add support for data model to read multiple time slices at once
New aquaplanet capability: adds aquaplanet capability to DOCN where the input is from a file rather than analytic; adds new A compsets to the driver config_compsets.xml that have different DOCN functionality: ADSOM - DOCN SOM, ADSOMAQP - DOCN aquaplanet SOM, ADAQP3 - DOCN analytic aquaplanet (mode 3), ADAQFILE - DOCN aquaplanet from file
DATM updates for clm
Change SIAF compset name in dice to IAF to be consistent with other components

Coupler/driver changes:
Map SMB from lnd to glc using bilinear mapping with a conservation correction
Remove more cesm refs in filenames.
seq_comm_mct code cleanup
Implementation of multiple couplers within multi-instance runs.

Other:
User's guide rst files now in cime/doc directory
Get PFUnit working on melvin
Homebrew generic mac port

Fixes #1255
Fixes #1424
Fixes #1426
Fixes #1573
Fixes #1576
Fixes #1585

* jgfouca/update_to_cime_5.3.0.34: (942 commits)
  Apply patch for cpl to avoid hangs
  Adjust ne4 PE layout on Anvil
  Reset configpes_all to what's on master
  Cherry-pick wait_for_tests fix from ESMCI
  Fix xmllint errors on Titan
  Convert attribute DEBUG to uppercase
  Update ne4-wcycl PEs on Anvil
  Fix the rest of the pylint errors for case_st_archive
  Fix jenkins script mistake made during conflict resolution.
  short term archiver get_datenames call for last restarts fixed
  One more short term archiver fix
  Fix merge conflicts, should mostly work
  cetus xml fix
  Hack to get PET test to work on chama
  Fix HOMME Cmake pointing to wrong cime area
  Update run_acme version
  Fixes for AQUAP
  Removes long term archiving from run_acme
  Move xml compiler and mpilib tags from env and command elements This is required for the new xml schema requirements; compiler and mpilib tags should be in the modules and environment_variables elements rather than their members
  Cherry-pick fixes from older merge branch
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants