Skip to content

Debian ruamel.yaml 0.15: Infinite Recoursion On Setup #9206

@ax3l

Description

@ax3l

Migrated out of #2495 (comment)

Just moving it out not to clutter it further.

I currently get an infinite recursion on a fresh copy of spack develop (ccbff6e) and removed $HOME/.spack directory on . share/spack/setup_env.sh in Debian 9.5 "stretch".

Steps to reproduce the issue

See docker image below. Basically, make sure to have a recent version of ruamel.yaml on your system.

Error Message

Traceback (most recent call last):
  File "/home/axel/src/spack/bin/spack", line 54, in <module>
    sys.exit(spack.main.main())
  File "/home/axel/src/spack/lib/spack/spack/main.py", line 600, in main
    print_setup_info(*args.print_shell_vars.split(','))
  File "/home/axel/src/spack/lib/spack/spack/main.py", line 565, in print_setup_info
    module_roots = spack.config.get('config:module_roots')
  File "/home/axel/src/spack/lib/spack/spack/config.py", line 573, in get
    return config.get(path, default, scope)
  File "/home/axel/src/spack/lib/spack/llnl/util/lang.py", line 556, in __getattr__
    return getattr(self.instance, name)
  File "/home/axel/src/spack/lib/spack/llnl/util/lang.py", line 556, in __getattr__
    return getattr(self.instance, name)
  File "/home/axel/src/spack/lib/spack/llnl/util/lang.py", line 556, in __getattr__
    return getattr(self.instance, name)
  [Previous line repeated 318 more times]
  File "/home/axel/src/spack/lib/spack/llnl/util/lang.py", line 552, in instance
    self._instance = self.factory()
  File "/home/axel/src/spack/lib/spack/spack/config.py", line 547, in _config
    defaults = InternalConfigScope('_builtin', config_defaults)
  File "/home/axel/src/spack/lib/spack/spack/config.py", line 238, in __init__
    _validate_section({section: dsec}, section_schemas[section])
  File "/home/axel/src/spack/lib/spack/spack/config.py", line 611, in _validate_section
    _validate_section.validator(schema).validate(data)
  File "/home/axel/src/spack/lib/spack/external/jsonschema/validators.py", line 67, in __init__
    resolver = RefResolver.from_schema(schema)
  File "/home/axel/src/spack/lib/spack/external/jsonschema/validators.py", line 260, in from_schema
    return cls(schema.get(u"id", u""), schema, *args, **kwargs)
  File "/home/axel/src/spack/lib/spack/external/jsonschema/validators.py", line 245, in __init__
    for id, validator in iteritems(meta_schemas)
  File "/home/axel/src/spack/lib/spack/external/jsonschema/_utils.py", line 20, in __init__
    self.store.update(*args, **kwargs)
  File "/home/axel/src/spack/lib/spack/external/jsonschema/validators.py", line 244, in <genexpr>
    (id, validator.META_SCHEMA)
  File "/home/axel/miniconda3/lib/python3.6/_collections_abc.py", line 744, in __iter__
    yield (key, self._mapping[key])
  File "/home/axel/src/spack/lib/spack/external/jsonschema/_utils.py", line 23, in __getitem__
    return self.store[self.normalize(uri)]
  File "/home/axel/src/spack/lib/spack/external/jsonschema/_utils.py", line 16, in normalize
    return urlsplit(uri).geturl()
  File "/home/axel/src/spack/lib/spack/external/jsonschema/compat.py", line 37, in urlsplit
    scheme, netloc, path, query, fragment = _urlsplit(url)
  File "/home/axel/miniconda3/lib/python3.6/urllib/parse.py", line 398, in urlsplit
    url, scheme, _coerce_result = _coerce_args(url, scheme)
RecursionError: maximum recursion depth exceeded

Information on your system

Python 3.6.4 from Anaconda
ruamel.yaml 0.15.37
Debian 9.5

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