Incorrect reference handling in _arraycore initialization failure paths
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 58/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Lĩnh vực
- backend, bioinformatics
Hướng nghiên cứu
Bắt đầu trong Bio/Align/substitution_matrices/_arraycore.c và lần theo mọi đường dẫn lỗi khởi tạo sau khi lấy numpy.ndarray. Tái hiện các trường hợp thiếu thuộc tính và không phải kiểu trong một tiến trình CPython mới với một mô-đun numpy stub, sau đó xác minh rằng các tham chiếu tạm thời được cân bằng và việc khởi tạo thành công chuyển quyền sở hữu đúng cách.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
This issue does not affect users with working NumPy installations, the affected code runs only when NumPy initialization fails. It is a defensive hardening opportunity I encountered while chasing a separate memory issue through my project's dependencies.
The affected file is Bio/Align/substitution_matrices/_arraycore.c on the current Biopython master branch.
Expected behaviour
If numpy.ndarray is missing, invalid, or unsuitable as a base type, _arraycore should abort initialization while releasing exactly the temporary references it owns.
Actual behaviour
The initializer decrements the NumPy module reference after retrieving numpy.ndarray, then decrements the same reference again when the attribute is missing or is not a type. Other early returns can retain the temporary numpy.ndarray reference.
This can corrupt or imbalance CPython reference counts during failed module initialization.
Steps to reproduce
Load _arraycore in a fresh CPython process with a stub numpy module where ndarray is either missing or not a type. Both cases exercise the incorrect cleanup paths.
I have a tested fix ready that balances the temporary references and uses PyModule_AddType for the successful ownership transfer. I can open a pull request if the maintainers would like this failure path hardened.
- Ngôn ngữ chính
- Python
- Star
- 5.2k
- Fork
- 2k
- Merge trung bình
- 1 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 12
Chuẩn bị môi trường
- Không có Dockerfile hay 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 biopython/biopython
-
`CodonAdaptationIndex.calculate()` hardcodes ATG/TGG as CAI weight 1.0Có thể đã có người làm @cipgi đã nhận 6 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
biopython/biopython#5345 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
DistanceCalculator identity model inflates the distance when skip_letters is usedCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
biopython/biopython#5332 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Seq({}, length=N) creates a partially defined sequence with no segments, crashing on addition and multiplicationCó thể đã có người làm @mdehoon đã nhận 13 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
biopython/biopython#5329 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
When the residue sequence identifier (line[22:26]) is empty, PDBParser raises an errorCó thể đã có người làm @etal đã nhận 13 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
biopython/biopython#5327 · 1 bình luận · 2 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
EMBL writer warns on valid INSDC mol_type values, accepts invalid onesCó thể đã có người làm @corneliusroemer đã 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 85/100
biopython/biopython#5319 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của biopython/biopython
Issue tương tự
-
comp/gateway comp/plugins duplicate P3 type/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
NousResearch/hermes-agent#137019 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ 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
-
bot-triaged module: docs triaged
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
new-entry
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
BinWang28/audio-ai-hub#194 ·
-
confluence: a paged listing's links re-encode a parameter they carry, where real carries it as sentĐang mởfidelity
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
Maintainer thường phản hồi trong vòng 1 ngày