scancode aborts when encountering a broken RPM archive
Maintainer thường phản hồi trong vòng 3 ngày
@adeba4343-web đang làm issue này rồi.
Từ ngày 2/11/2026.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 62/100
Hướng nghiên cứu
Traceback trỏ tới src/packagedcode/rpm.py, nơi get_rpm_tags (khoảng dòng 87) tạo RPM(rpmf) và parse (khoảng dòng 293) gọi hàm này, cũng như tới src/packagedcode/pyrpm.py, nơi read_lead (khoảng dòng 425) ném RPMError khi magic number sai. Hãy bắt đầu bằng cách tái hiện lỗi crash trên tệp kiểm thử nghi ngờ tests/data/archive.rpm từ fuse-archive. Công việc hoàn thành khi quá trình quét không còn bị dừng hoặc treo với tệp không phải RPM, lỗi được xử lý hoặc bỏ qua, và worker pool tiếp tục chạy.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Python
- Star
- 2.7k
- Fork
- 848
- Merge trung bình
- 2 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của aboutcode-org/scancode-toolkit
-
Four silent bugs: IsRequiredPhrase.license_expression returns None, find_in_path ignores later PATH changes, duplicate dict keys override license mappingsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 65/100
aboutcode-org/scancode-toolkit#5405 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
parse_maintainer_name_email returns empty name and wrong email when string has "@" but no angle bracketsCó thể đã có người làm @pujitha24 đã nhận 3 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
aboutcode-org/scancode-toolkit#5402 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
bug: Unreachable JSON extension and format validation in validate_input_pathCó thể đã có người làm @0Cymantek0 đã nhận 23 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
aboutcode-org/scancode-toolkit#5351 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
CycloneDX output: metadata.properties[].value emits JSON array instead of stringCó thể đã có người làm @0Cymantek0 đã nhận 23 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
aboutcode-org/scancode-toolkit#5349 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Duplicate 'COPYLEFT' entries in legal file classification names in legal.py and classify.pyCó thể đã có người làm @Pradeepbeleri đã nhận 50 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
aboutcode-org/scancode-toolkit#5319 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của aboutcode-org/scancode-toolkit
Issue tương tự
-
bump patch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
autowarefoundation/autoware_carla_scenario#1321 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 78/100
QuantConnect/Documentation#2838 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
get_all_subclasses must deduplicate by class identityCó thể đã có người làm @Gambit-Checkmate đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 15 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · 1 bình luận ·