Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • autosubmit autosubmit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 338
    • Issues 338
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 21
    • Merge requests 21
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Earth SciencesEarth Sciences
  • autosubmitautosubmit
  • Issues
  • #950
Closed
Open
Issue created Feb 08, 2023 by Miguel Andrés Martínez@mandresDeveloper

Default job yaml combined with CUSTOME_CONFIG project job.yml

Hello @dbeltran and @bdepaula,

Autosubmit Version

tag:v4.0.0b2 autosubmitconfigparser: 0.0.75

Summary

When trying to run an experiment with a local project, where in the <path2experiments>/<expid>/conf/expdef_<expid>.yml I have CUSTOM_CONFIG: "%ROOTDIR%/proj/proj_ifs-fesom/conf/ifs-fesom", project.PROJECT_TYPE: local, project.PROJECT_DESTINATION: 'proj_ifs-fesom' local.PROJECT_PATH: '~/utilities/workflow', Autosubmit combines the content of <path2experiments>/<expid>/conf/jobs_<expid>.yml, with %ROOTDIR%/proj/proj_ifs-fesom/conf/ifs-fesom/jobs.yml. Because our project lacks of the template scripts for some of the tasks in the default (POST, CLEAN and TRANSFER) we get the following error:

Autosubmit is running with 4.0.0b

Checking configuration files...
expdef_a01t.yml OK
platforms_a01t.yml OK
autosubmit_a01t.yml OK
Traceback (most recent call last):
  File "/home/ollie/mandresm/.conda/envs/autosubmit/lib/python3.7/site-packages/autosubmitconfigparser/config/configcommon.py", line 901, in check_conf_files
    result = self.show_messages()
  File "/home/ollie/mandresm/.conda/envs/autosubmit/lib/python3.7/site-packages/autosubmitconfigparser/config/configcommon.py", line 549, in show_messages
    raise AutosubmitCritical(message, 7014)
log.log.AutosubmitCritical:  

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ollie/mandresm/utilities/autosubmit/bin/autosubmit", line 36, in main
    Autosubmit.parse_args()
  File "/home/ollie/mandresm/utilities/autosubmit/autosubmit/autosubmit.py", line 630, in parse_args
    args.start_after, args.run_members)
  File "/home/ollie/mandresm/utilities/autosubmit/autosubmit/autosubmit.py", line 1676, in run_experiment
    as_conf.check_conf_files(True, True)
  File "/home/ollie/mandresm/.conda/envs/autosubmit/lib/python3.7/site-packages/autosubmitconfigparser/config/configcommon.py", line 906, in check_conf_files
    raise AutosubmitCritical(e.message, e.code, e.trace)
log.log.AutosubmitCritical:  
 [CRITICAL] On Configuration files:
Critical Issues on [Jobs] config file:
[POST] FILE POST.sh doesn't exist and check parameter is not set on_submission value
[CLEAN] FILE CLEAN.sh doesn't exist and check parameter is not set on_submission value
[TRANSFER] FILE TRANSFER.sh doesn't exist and check parameter is not set on_submission value
 [eCode=7014]

Steps to reproduce

  1. git clone https://earth.bsc.es/gitlab/digital-twins/de_340/workflow -b prototype/ifs-fesom-customconf ~/DT_workflow
  2. If you are using tag v4.0.0b2 fix this line https://earth.bsc.es/gitlab/es/autosubmit/-/blob/v4.0.0b2/autosubmit/job/job_dict.py#L392 to look like this one https://earth.bsc.es/gitlab/es/autosubmit/-/blob/master/autosubmit/job/job_dict.py#L392
  3. autosubmit expid -H LUMI -d "Basic ifs-fesom/RAPS workflow"
  4. Set The expdef.yml to look like this:
DeFault:
  EXPID: a002
  HPCARCH: LUMI # default hpc when no platform is given for a job(?)
  CUSTOM_CONFIG: "%ROOTDIR%/proj/proj_ifs-fesom/conf/ifs-fesom,/albedo/home/sebeye001/.config/autosubmit/platforms.yml"                                                                      
experiment:
  DATELIST: 20200120
  MEMBERS: "fc0"
  CHUNKSIZEUNIT: day
  CHUNKSIZE: 1
  NUMCHUNKS: 5
  CHUNKINI: ''
  CALENDAR: standard
project:
  PROJECT_TYPE: local
  PROJECT_DESTINATION: 'proj_ifs-fesom'
local:
  PROJECT_PATH: '~/DT_workflow'
project_files:
  FILE_PROJECT_CONF: ''
  FILE_JOBS_CONF: ''
  JOB_SCRIPTS_TYPE: ''
rerun:
  RERUN: FALSE
  RERUN_JOBLIST: ''
  1. autosubmit create <expid>
  2. autosubmit run <expid>

The error should occur at this point.

If you enter in debug mode and put a break point in autosubmitconfigparser/config/configcommon.py:1022 and have a look at the content of parser['JOBS'] you'll see that both job.yml files are combined, the ones defined by the project and the default ones provided by Autosubmit.

 'JOBS': {'CLEAN': {'ADDITIONAL_FILES': [],
                    'DEPENDENCIES': {'POST': {}},
                    'FILE': 'CLEAN.sh',
                    'RUNNING': 'once',
                    'WALLCLOCK': '00:05'},
          'INI': {'ADDITIONAL_FILES': [],
                  'DEPENDENCIES': {'REMOTE_SETUP': {}},
                  'FILE': 'templates/ini.sh',
                  'PLATFORM': 'LUMI-login',
                  'RUNNING': 'member',
                  'WALLCLOCK': '00:05'},
          'LOCAL_SETUP': {'ADDITIONAL_FILES': [],
                          'DEPENDENCIES': {},
                          'FILE': 'templates/local_setup.sh',
                          'PLATFORM': 'LOCAL',
                          'RUNNING': 'once'},
          'POST': {'ADDITIONAL_FILES': [],
                   'DEPENDENCIES': {'SIM': {}},
                   'FILE': 'POST.sh',
                   'RUNNING': 'once',
                   'WALLCLOCK': '00:05'},
          'REMOTE_SETUP': {'ADDITIONAL_FILES': [],
                           'DEPENDENCIES': {'LOCAL_SETUP': {},
                                            'SYNCHRONIZE': {}},
                           'FILE': 'templates/remote_setup.sh',
                           'PLATFORM': 'LUMI-login',
                           'RUNNING': 'once',
                           'WALLCLOCK': '00:05'},
          'SIM': {'ADDITIONAL_FILES': [],
                  'CUSTOM_DIRECTIVES': "['#SBATCH -p debug', '#SBATCH -N 1', "
                                       "'#SBATCH --ntasks-per-node=64', "
                                       "'#SBATCH --export=ALL']",
                  'DEPENDENCIES': {'INI': {}, 'SIM-1': {}},
                  'FILE': 'templates/sim.sh',
                  'PROCESSORS': 64,
                  'RUNNING': 'chunk',
                  'THREADS': 2,
                  'WALLCLOCK': '00:20'},
          'SYNCHRONIZE': {'ADDITIONAL_FILES': [],
                          'DEPENDENCIES': {'LOCAL_SETUP': {}},
                          'FILE': 'templates/synchronize.sh',
                          'PLATFORM': 'LOCAL',
                          'RUNNING': 'once'},
          'TRANSFER': {'ADDITIONAL_FILES': [],
                       'DEPENDENCIES': {'CLEAN': {}},
                       'FILE': 'TRANSFER.sh',
                       'PLATFORM': 'LOCAL',
                       'RUNNING': 'member'}},

What is the current bug behavior?

Default's jobs.yaml and project's jobs.yml information is combined.

What is the expected correct behavior?

I am not sure... I guess that if there is JOBS information in the project, that should not be combined with the default, after all, the JOBS dictionary is the workflow definition per se, and the workflow definition will depend on the project, right?

Thanks for your help!

Edited Feb 08, 2023 by Miguel Andrés Martínez
Assignee
Assign to
Time tracking