scancode aborts when encountering a broken RPM archive
I maintainer di solito rispondono entro 3 giorni
@adeba4343-web ci sta già lavorando.
Dal 2/11/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 62/100
Direzione di ricerca
Il traceback punta a src/packagedcode/rpm.py, dove get_rpm_tags (intorno alla riga 87) costruisce RPM(rpmf) e parse (intorno alla riga 293) la chiama, e a src/packagedcode/pyrpm.py, dove read_lead (intorno alla riga 425) solleva RPMError con un numero magico errato. Inizia riproducendo il crash sul file di test sospettato tests/data/archive.rpm di fuse-archive. Il lavoro è completato quando la scansione non si interrompe né si blocca su un file non RPM, l'errore viene gestito o saltato e il worker pool continua a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
While scanning the fuse-archive 1.22 source directory in a yocto build, scancode crashes and hangs forever:
Process ForkPoolWorker-15:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/usr/local/lib/python3.12/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.12/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/scancode/cli.py", line 1456, in scan_resource
error, values_mapping = interruptor(runner, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/scancode/interrupt.py", line 91, in interruptible
return NO_ERROR, func(*(args or ()), **(kwargs or {}))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/scancode/api.py", line 327, in get_package_data
package_datas = _get_package_data(
^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/scancode/api.py", line 276, in _get_package_data
return recognize_package_data(
^^^^^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/packagedcode/recognize.py", line 62, in recognize_package_data
return list(_parse(
^^^^^^^^^^^^
File "/scancode-toolkit/src/packagedcode/recognize.py", line 136, in _parse
for parsed in handler.parse(location=location, package_only=package_only):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/packagedcode/rpm.py", line 293, in parse
rpm_tags = get_rpm_tags(location, include_desc=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scancode-toolkit/src/packagedcode/rpm.py", line 87, in get_rpm_tags
rpm = RPM(rpmf)
^^^^^^^^^
File "/scancode-toolkit/src/packagedcode/pyrpm.py", line 399, in __init__
self.read_lead()
File "/scancode-toolkit/src/packagedcode/pyrpm.py", line 425, in read_lead
raise RPMError('Wrong magic number: this is not a RPM file')
packagedcode.pyrpm.RPMError: Wrong magic number: this is not a RPM file
The offending file might be https://github.com/google/fuse-archive/blob/main/tests/data/archive.rpm.
- Lingua principale
- Python
- Stelle
- 2.7k
- Fork
- 831
- Merge medio
- 2g 19h
- PR unite (30g)
- 8
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aboutcode-org/scancode-toolkit
-
Four silent bugs: IsRequiredPhrase.license_expression returns None, find_in_path ignores later PATH changes, duplicate dict keys override license mappingsForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 Mezza giornata Idoneità per principianti 65/100
aboutcode-org/scancode-toolkit#5405 ·
I maintainer di solito rispondono entro 3 giorni
-
parse_maintainer_name_email returns empty name and wrong email when string has "@" but no angle bracketsForse già presa @pujitha24 l’ha presa 2 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
aboutcode-org/scancode-toolkit#5402 ·
I maintainer di solito rispondono entro 3 giorni
-
bug: Unreachable JSON extension and format validation in validate_input_pathForse già presa @0Cymantek0 l’ha presa 23 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
aboutcode-org/scancode-toolkit#5351 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
CycloneDX output: metadata.properties[].value emits JSON array instead of stringForse già presa @0Cymantek0 l’ha presa 23 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
aboutcode-org/scancode-toolkit#5349 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Duplicate 'COPYLEFT' entries in legal file classification names in legal.py and classify.pyForse già presa @Pradeepbeleri l’ha presa 50 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
aboutcode-org/scancode-toolkit#5319 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di aboutcode-org/scancode-toolkit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
unionai-oss/pandera#2640 ·
I maintainer di solito rispondono entro 2 giorni
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JdeRobot/RoboticsInfrastructure#843 ·
I maintainer di solito rispondono entro 1 giorno
-
automated endpoint-dead needs-curation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
almanac-data/climate-almanac#122 ·
I maintainer di solito rispondono entro 1 giorno
-
area:harness enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
evarness-ai/iris-harness#420 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
suitenumerique/find#206 ·
I maintainer di solito rispondono entro 2 giorni