Incorrect reference handling in _arraycore initialization failure paths
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 58/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Ambito
- backend, bioinformatics
Direzione di ricerca
Inizia in Bio/Align/substitution_matrices/_arraycore.c e traccia ogni percorso di errore di inizializzazione dopo aver recuperato numpy.ndarray. Riproduci i casi di attributo mancante e di non-tipo in un processo CPython nuovo con un modulo numpy stub, quindi verifica che i riferimenti temporanei siano bilanciati e che l'inizializzazione riuscita trasferisca correttamente la proprietà.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 5.2k
- Fork
- 2k
- Merge medio
- 1g 12h
- PR unite (30g)
- 13
Preparare l'ambiente
- Nessun Dockerfile né 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 biopython/biopython
-
PDBIO writes 5-character residue names in full, and PDBParser cannot read the file backForse già presa @Kaustav5505g l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
biopython/biopython#5370 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
`CodonAdaptationIndex.calculate()` hardcodes ATG/TGG as CAI weight 1.0Forse già presa @cipgi l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
biopython/biopython#5345 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
DistanceCalculator identity model inflates the distance when skip_letters is usedForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
biopython/biopython#5332 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Seq({}, length=N) creates a partially defined sequence with no segments, crashing on addition and multiplicationForse già presa @mdehoon l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
biopython/biopython#5329 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
When the residue sequence identifier (line[22:26]) is empty, PDBParser raises an errorForse già presa @etal l’ha presa 15 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
biopython/biopython#5327 · 1 commento · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di biopython/biopython
Issue simili
-
effort: low prio: low ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
digitalfabrik/integreat-cms#4616 ·
I maintainer di solito rispondono entro 5 giorni
-
bug difficulty:2 good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
MakazhanAlpamys/Soup#1865 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
FinanceFlash/unvibecode#233 ·
I maintainer di solito rispondono entro 1 giorno
-
area: agents area: docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptForse già presa @adityasinha-ghub l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pylint-dev/pylint#11656 ·
I maintainer di solito rispondono entro 1 giorno