Aw: Re: RecursionError when try to check bindings (ubuntu 22.04 / Python3.10)

From: Frank Wunderlich
Date: Mon Sep 04 2023 - 15:17:40 EST


Hi,

seems like this fixes it (at least i get over the faulty point see now the DTEX lines):

pip3 install jsonschema==4.17.0

seems my previous version was 4.6.0

Requirement already satisfied: jsonschema in /home/frank/.local/lib/python3.10/site-packages (4.6.0)

first tried upgrade of this, but this results in 4.19 which is not compatible with dtschema

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
dtschema 2023.7 requires jsonschema<4.18,>=4.1.2, but you have jsonschema 4.19.0 which is incompatible.

so i set the last version told to be compatible

regards Frank


> On 03/09/2023 13:08, Frank Wunderlich wrote:
> > Hi,
> >
> > i tried to check a binding-file with 6.5 kernelsource and get this error
> >
> > GNU nano 6.2 dt.log
> > LINT Documentation/devicetree/bindings
> > CHKDT Documentation/devicetree/bindings/processed-schema.json
> > SCHEMA Documentation/devicetree/bindings/processed-schema.json
> > Traceback (most recent call last):
> > File "/home/frank/.local/bin/dt-mk-schema", line 38, in <module>
> > schemas = dtschema.DTValidator(args.schemas).schemas
> > File "/home/frank/.local/lib/python3.10/site-packages/dtschema/validator.py", line 354, in __init__
> > self.schemas = process_schemas(schema_files)
> > File "/home/frank/.local/lib/python3.10/site-packages/dtschema/validator.py", line 271, in process_schemas
> > sch = process_schema(os.path.abspath(filename))
> > File "/home/frank/.local/lib/python3.10/site-packages/dtschema/validator.py", line 248, in process_schema
> > dtsch.is_valid()
> > File "/home/frank/.local/lib/python3.10/site-packages/dtschema/schema.py", line 145, in is_valid
> > for error in self.DtValidator(self.DtValidator.META_SCHEMA).iter_errors(self):
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 242, in iter_errors
> > for error in errors:
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/_validators.py", line 362, in allOf
> > yield from validator.descend(instance, subschema, schema_path=index)
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 258, in descend
> > for error in self.evolve(schema=schema).iter_errors(instance):
> >
> > block from line 242-258 repeats many times (~2000 lines in log)
> >
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 242, in iter_errors
> > for error in errors:
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/_legacy_validators.py", line 216, in recursiveRef
> > lookup_url, next_target = validator.resolver.resolve(each)
> > File "/home/frank/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 835, in resolve
> > url = self._urljoin_cache(self.resolution_scope, ref).rstrip("/")
> > RecursionError: maximum recursion depth exceeded in comparison
> >
> > make[2]: *** [Documentation/devicetree/bindings/Makefile:68: Documentation/devicetree/bindings/processed-schema.json] Error 1
> > make[2]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema.json'
> > make[1]: *** [/media/data_nvme/git/kernel/BPI-R2-4.14/Makefile:1516: dt_binding_check] Error 2
> > make: *** [Makefile:234: __sub-make] Error 2
> >
> > my command is (after importing defconfig, also tried a clean before):
> >
> > ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make dt_binding_check
> >
> > already did an update of dtschema with "pip3 install dtschema --upgrade" and also an uninstall/install of this python-package
> >
> > $ pip3 show dtschema
> > Name: dtschema
> > Version: 2023.7
> > Summary: DeviceTree validation schema and tools
> > Home-page: https://github.com/devicetree-org/dt-schema
> > Author: Rob Herring
> > Author-email: robh@xxxxxxxxxx
> > License: BSD
> > Location: /home/frank/.local/lib/python3.10/site-packages
> > Requires: jsonschema, pylibfdt, rfc3987, ruamel.yaml
> > Required-by: