Skip to content

Unfinished braces causes traceback and poor error info #879

@tgoetsch-lanl

Description

@tgoetsch-lanl

The following code sample comes from cray-dsmml.yaml in the pe_testing repo. It contains invalid syntax for the prgenv variable.

cray-dsmml.yaml:
_base:
  permute_on: prgenv
  variables:
    modules_root?: '/usr/projects/hpcsoft/pe/modules/{{sys_name}}'
    cpe_version:
    prgenv?: {
      - { name: PrgEnv-cray,  compiler_cmd: crayCC }
      - { name: PrgEnv-gnu,   compiler_cmd: g++    }
      - { name: PrgEnv-intel, compiler_cmd: icpx   }
    version:
    pkg: cray-dsmml
    so_name: dsmml
    whatis: dsmml

pav show tests --err looks like it either cuts off the error message, or doesn't have anything useful for this bug.

[tgoetsch@rz-rfe1:pe_testing]> pav show tests --err cray-dsmml
 Available Tests
--------------+-------------------------------------+---------------------------------------+---------------------------
 Name         | Summary                             | Path                                  | Err
--------------+-------------------------------------+---------------------------------------+---------------------------
 cray-dsmml.* | Loading the suite failed.  For more | /usr/projects/hpctools/tgoetsch/repos | while parsing a flow node
              | info, run `pav show tests --err`.   | /pe_testing/suites/cray-dsmml.yaml    |

pav view cray-dsmml provides more useful error messaging, but it then gives a traceback.

[tgoetsch@rz-rfe1:pe_testing]> pav view cray-dsmml
Unknown error running command view. Suite config '/usr/projects/hpctools/tgoetsch/repos/pe_testing/suites/cray-
dsmml.yaml' has a YAML Error
  while parsing a flow node
  4:     cpe_version:
  5:     prgenv?: {
  6:       - { name: PrgEnv-cray,  compiler_cmd: crayCC }
           ^
  7:       - { name: PrgEnv-gnu,   compiler_cmd: g++    }
  8:       - { name: PrgEnv-intel, compiler_cmd: icpx   }
  expected the node content, but found '-'
Traceback (most recent call last):
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/resolver/resolver.py", line 617, in _safe_load_config
    raw_cfg = loader.load_raw(cfg_file)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yaml_config/loaders.py", line 77, in load_raw
    return yaml.load(infile)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/__init__.py", line 75, in load
    return loader.get_single_data()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/parser.py", line 540, in parse_flow_mapping_first_key
    return self.parse_flow_mapping_key(first=True)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/parser.py", line 562, in parse_flow_mapping_key
    return self.parse_flow_node()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/parser.py", line 268, in parse_flow_node
    return self.parse_node()
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/yc_yaml/parser.py", line 371, in parse_node
    token.start_mark)
yc_yaml.parser.ParserError: while parsing a flow node
expected the node content, but found '-'
  in "/usr/projects/hpctools/tgoetsch/repos/pe_testing/suites/cray-dsmml.yaml", line 7, column 7

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/main.py", line 118, in run_cmd
    return cmd.run(pav_cfg, args)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/commands/view.py", line 91, in run
    overrides=overrides,
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/resolver/resolver.py", line 525, in load
    raise self.errors[0]
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/resolver/resolver.py", line 876, in _load_suite_tests
    raw_suite_cfg = self._load_raw_config(cfg_info, loader)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/resolver/resolver.py", line 663, in _load_raw_config
    raw_cfg = self._safe_load_config(cfg_info, loader)
  File "/usr/projects/hpctools/tgoetsch/repos/pe_testing/pav_src/lib/pavilion/resolver/resolver.py", line 632, in _safe_load_config
    .format(cfg_type.capitalize(), path), prior_error=err)
pavilion.errors.TestConfigError: Suite config '/usr/projects/hpctools/tgoetsch/repos/pe_testing/suites/cray-dsmml.yaml' has a YAML Error: while parsing a flow node
expected the node content, but found '-'
  in "/usr/projects/hpctools/tgoetsch/repos/pe_testing/suites/cray-dsmml.yaml", line 7, column 7
Traceback logged to None

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions