Skip to content

Python RecursionError when sourcing setup-env.sh  #9619

@willfurnass

Description

@willfurnass

Python RecursionError when sourcing setup-env.sh from a bash shell.

Steps to reproduce the issue

$ git clone https://github.com/LLNL/spack spack-test
Cloning into 'spack-test'...
remote: Enumerating objects: 53, done.
remote: Counting objects: 100% (53/53), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 134145 (delta 34), reused 4 (delta 4), pack-reused 134092
Receiving objects: 100% (134145/134145), 46.84 MiB | 1.43 MiB/s, done.
Resolving deltas: 100% (63680/63680), done.
[will@acai dev]$ source spack-test/share/spack/setup-env.sh 
Traceback (most recent call last):
  File "/home/will/dev/spack-test/bin/spack", line 36, in <module>
    sys.exit(spack.main.main())
  File "/home/will/dev/spack-test/lib/spack/spack/main.py", line 581, in main
    print_setup_info(*args.print_shell_vars.split(','))
  File "/home/will/dev/spack-test/lib/spack/spack/main.py", line 546, in print_setup_info
    module_roots = spack.config.get('config:module_roots')
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 554, in get
    return config.get(path, default, scope)
  File "/home/will/dev/spack-test/lib/spack/llnl/util/lang.py", line 537, in __getattr__
    return getattr(self.instance, name)
  File "/home/will/dev/spack-test/lib/spack/llnl/util/lang.py", line 537, in __getattr__
    return getattr(self.instance, name)
  File "/home/will/dev/spack-test/lib/spack/llnl/util/lang.py", line 537, in __getattr__
    return getattr(self.instance, name)
  [Previous line repeated 481 more times]
  File "/home/will/dev/spack-test/lib/spack/llnl/util/lang.py", line 533, in instance
    self._instance = self.factory()
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 528, in _config
    defaults = InternalConfigScope('_builtin', config_defaults)
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 219, in __init__
    _validate_section({section: dsec}, section_schemas[section])
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 592, in _validate_section
    _validate_section.validator(schema).validate(data)
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 116, in validate
    for error in self.iter_errors(*args, **kwargs):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 95, in iter_errors
    for error in errors:
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 139, in set_pp_defaults
    validator, properties, instance, schema):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/_validators.py", line 19, in patternProperties
    v, subschema, path=k, schema_path=pattern,
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 108, in descend
    for error in self.iter_errors(instance, schema):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 95, in iter_errors
    for error in errors:
  File "/home/will/dev/spack-test/lib/spack/spack/config.py", line 127, in set_defaults
    validator, properties, instance, schema):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/_validators.py", line 283, in properties_draft4
    schema_path=property,
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 108, in descend
    for error in self.iter_errors(instance, schema):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 95, in iter_errors
    for error in errors:
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/_validators.py", line 269, in type_draft4
    if not any(validator.is_type(instance, type) for type in types):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/_validators.py", line 269, in <genexpr>
    if not any(validator.is_type(instance, type) for type in types):
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 128, in is_type
    issubclass(pytype, numbers.Number) for pytype in pytypes
  File "/home/will/dev/spack-test/lib/spack/external/jsonschema/validators.py", line 128, in <genexpr>
    issubclass(pytype, numbers.Number) for pytype in pytypes
  File "/usr/lib/python3.7/abc.py", line 143, in __subclasscheck__
    return _abc_subclasscheck(cls, subclass)
RecursionError: maximum recursion depth exceeded in comparison

I get the same error if I start a tcsh shell from my bash shell and run

. spack-test/share/spack/setup-env.csh  

Information on your system

  • Python 3.7 on Arch Linux
  • Tested using HEAD of develop (1920754)
  • No ~/.spack/ directory

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions