socket.fromfd() leaks the dup()'d fd when family/type/proto are invalid
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- operating-systems
Línea de trabajo
Empieza leyendo socket.fromfd() y sus pruebas en el módulo socket de CPython; el issue no indica ningún archivo ni prueba, así que localízalos buscando fromfd. Reproduce el fallo con valores no válidos de family, type o proto y confirma que el descriptor duplicado se cierra cuando la construcción genera una excepción. El trabajo estará terminado cuando la prueba de regresión cubra esos fallos y el descriptor ya no tenga fugas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug report
socket.fromfd() duplicates the fd, then constructs the socket object.
If construction raises (TypeError/ValueError/OverflowError), the
duplicated fd is never closed.
Repro: attached confirm.py (Linux). It lowers RLIMIT_NOFILE and calls
socket.fromfd(fd, <bad family | bad type | huge proto>) repeatedly.
Result: each failing call leaks exactly one fd (10 leaks over 10
calls). A valid-args control leaks 0. Eventually any socket() call fails
with EMFILE.
Expected: the dup()'d fd is closed before the exception propagates.
CPython versions tested on:
3.14
Operating systems tested on:
Linux
Linked PRs
- gh-160579
- Lenguaje dominante
- Python
- Estrellas
- 77.7k
- Forks
- 38.3k
- Merge medio
- 12 h 27 min
- PR fusionados (30 d)
- 710
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python/cpython
-
3.16 build type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
python/cpython#160829 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
dependencies infra topic-ensurepip
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
symtable: repr() of a Symbol raises TypeError under -X lazy_imports=allPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertostdlib topic-lazy-imports type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
python/cpython#160810 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
tarfile: extractfile(member).read() of a sparse member is slow due to repeated bytes concatenationAbiertoperformance stdlib triaged type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
python/cpython#160774 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
tests topic-profiling type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
python/cpython#160334 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de python/cpython
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/agent-lightning#661 ·
Los mantenedores suelen responder en 2 días
-
area/profiles comp/cli P3 type/feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
NousResearch/hermes-agent#146372 ·
Los mantenedores suelen responder en 1 día
-
[BUG] OpenAI-compatible embedding model alias breaks embedder constructionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
[oblt-aw][autodoc] Document obs-aw-automerge contract and fix automerge doc inconsistenciesPosiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
GeoSeries scale and skew tests fail with pytest 9.2.0Posiblemente ocupada @jiayuasu la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día