lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <trinity-aa735349-6232-4b6b-b754-793596c329af-1693855651148@3c-app-gmx-bs26>
Date:   Mon, 4 Sep 2023 21:27:31 +0200
From:   Frank Wunderlich <frank-w@...lic-files.de>
To:     Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Cc:     Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Aw: Re:  Re: RecursionError when try to check bindings (ubuntu
 22.04 / Python3.10)



regards Frank


> Gesendet: Montag, 04. September 2023 um 21:21 Uhr
> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@...aro.org>
> An: "Frank Wunderlich" <frank-w@...lic-files.de>
> Cc: "Rob Herring" <robh+dt@...nel.org>, "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@...aro.org>, devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
> Betreff: Re: Aw: Re: RecursionError when try to check bindings (ubuntu 22.04 / Python3.10)
>
> On 04/09/2023 20:33, Frank Wunderlich wrote:
> > Hi
> >
> >> Gesendet: Montag, 04. September 2023 um 20:18 Uhr
> >> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@...aro.org>
> >> An: "Frank Wunderlich" <frank-w@...lic-files.de>, "Rob Herring" <robh+dt@...nel.org>, "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@...aro.org>
> >> Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
> >> Betreff: Re: RecursionError when try to check bindings (ubuntu 22.04 / Python3.10)
> >>
> >> 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
> >>>
> >>>   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@...nel.org
> >>> License: BSD
> >>> Location: /home/frank/.local/lib/python3.10/site-packages
> >>> Requires: jsonschema, pylibfdt, rfc3987, ruamel.yaml
> >>> Required-by:
> >>>
> >>> any idea what can be the cause?
> >>
> >> Can you share the reproduction steps? This probably is some error in
> >> schema which is then not nicely handled by dtschema.
> >
> > there is not much more than i already told...
> >
> > git checkout v6.5 #to have clean mainline version
> > ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig #use mainline default config
> > ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make dt_binding_check
> >
> > it does not tell me a special binding file which is broken...it seems it has a problem with the self generated processed-schema.json, but it deletes the file.
> >
> > maybe there is a way to skip this removal to analyse this file...have looked into my site-packages, but have not found the position of file deletion
> >
> > btw. i get the same error also if i do not pass a file to dt-validate command...
>
> Cannot reproduce it. Are you sure you are no mixing Python versions or
> packages (e.g. pip and pip3)?

i do not call python directly but it does not matter

$ pip -V
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

$ pip3 -V
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

$ python -V
Python 3.10.12

$ python3 -V
Python 3.10.12

but it is fixed by upgrading jsonschema package to 4.17

pip3 install jsonschema==4.17.0

maybe this can be defined as depency for dtschema...at least 4.6 is not working (the version i had before)

i guess you have already a newer version of jsonschema package

> Best regards,
> Krzysztof
>
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ