hashdist / hashstack

Collection of software profiles for HashDist
https://hashdist.github.io/
51 stars 60 forks source link

petsc package still broken in master #42

Open certik opened 10 years ago

certik commented 10 years ago

This was caused by #29, in particular using git bisect, the first bad commit is 6b847d9b50a930e20399cd2e767b406b53140987. I am using the latest hashdist master.

$ hit build
[ERROR] Uncaught exception:
Traceback (most recent call last):
  File "/home/ondrej/repos/hashdist/hashdist/cli/main.py", line 168, in help_on_exceptions
    return func(*args, **kw)
  File "/home/ondrej/repos/hashdist/hashdist/cli/main.py", line 142, in main
    retcode = args.subcommand_handler(ctx, args)
  File "/home/ondrej/repos/hashdist/hashdist/cli/frontend_cli.py", line 36, in run
    self = cls(ctx, args)
  File "/home/ondrej/repos/hashdist/hashdist/cli/frontend_cli.py", line 32, in __init__
    self.builder = ProfileBuilder(self.ctx.logger, self.source_cache, self.build_store, self.profile)
  File "/home/ondrej/repos/hashdist/hashdist/spec/builder.py", line 27, in __init__
    self._load_packages()
  File "/home/ondrej/repos/hashdist/hashdist/spec/builder.py", line 49, in _load_packages
    visit(pkgname)
  File "/home/ondrej/repos/hashdist/hashdist/spec/builder.py", line 45, in visit
    visit(dep)
  File "/home/ondrej/repos/hashdist/hashdist/spec/builder.py", line 42, in visit
    spec = package.PackageSpec.load(self.profile, use)
  File "/home/ondrej/repos/hashdist/hashdist/spec/package.py", line 41, in load
    doc, hook_files = load_and_inherit_package(profile, name, package_parameters)
  File "/home/ondrej/repos/hashdist/hashdist/spec/package.py", line 167, in load_and_inherit_package
    doc = profile.load_package_yaml(package_name, parameters)
  File "/home/ondrej/repos/hashdist/hashdist/spec/profile.py", line 58, in load_package_yaml
    load_yaml_from_file(filename, parameters) for filename in result.values()]
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 195, in load_yaml_from_file
    return marked_yaml_load(expanded_stream, filecaption)
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 186, in marked_yaml_load
    return MarkedLoader(stream, filecaption).get_single_data()
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 39, in get_single_data
    return self.construct_document(node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 43, in construct_document
    data = self.construct_object(node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 88, in construct_object
    data = constructor(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 136, in construct_yaml_map
    obj, = SafeConstructor.construct_yaml_map(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 401, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 211, in construct_mapping
    return BaseConstructor.construct_mapping(self, node, deep=deep)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 133, in construct_mapping
    value = self.construct_object(value_node, deep=deep)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 88, in construct_object
    data = constructor(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 136, in construct_yaml_map
    obj, = SafeConstructor.construct_yaml_map(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 401, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 211, in construct_mapping
    return BaseConstructor.construct_mapping(self, node, deep=deep)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 133, in construct_mapping
    value = self.construct_object(value_node, deep=deep)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 88, in construct_object
    data = constructor(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 140, in construct_yaml_seq
    obj, = SafeConstructor.construct_yaml_seq(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 396, in construct_yaml_seq
    data.extend(self.construct_sequence(node))
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 118, in construct_sequence
    for child in node.value]
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 88, in construct_object
    data = constructor(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/formats/marked_yaml.py", line 136, in construct_yaml_map
    obj, = SafeConstructor.construct_yaml_map(self, node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 401, in construct_yaml_map
    value = self.construct_mapping(node)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 211, in construct_mapping
    return BaseConstructor.construct_mapping(self, node, deep=deep)
  File "/home/ondrej/repos/hashdist/hashdist/deps/yaml/constructor.py", line 132, in construct_mapping
    "found unacceptable key (%s)" % exc, key_node.start_mark)
ConstructorError: while constructing a mapping
  in "/home/ondrej/repos/hashstack2/pkgs/petsc.yaml", line 3, column 22
found unacceptable key (unhashable type: 'dict_node')
  in "/home/ondrej/repos/hashstack2/pkgs/petsc.yaml", line 3, column 23

This exception has not been translated to a human-friendly error message,
please file an issue at https://github.com/hashdist/hashdist/issues pasting
this stack trace.
certik commented 10 years ago

Here is my default.yaml:

$ cat default.yaml 
extends:
- file: linux.yaml

packages:

  launcher:
  blas:
    use: host-blas
  mpi:
    use: mpich
  python:
    host: false
  ipython:
  nose:
  petsc4py:
  matplotlib:
  numpy:
  sphinx:
  scipy:
  sympy:
  gmp:
  matplotlib-basemap:
  #python-netcdf4:
ahmadia commented 10 years ago

That error comes from petsc4py requiring petsc, but none of your petsc parameters being set. This is a problem that will go away permanently if we implement default parameters and profile settings.

For now, just make sure that the petsc configuration is explicitly specified if you require it.

certik commented 10 years ago

Ah ok, thanks!