socket.fromfd() leaks the dup()'d fd when family/type/proto are invalid
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 72/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- operating-systems
Direção de pesquisa
Comece lendo socket.fromfd() e seus testes no módulo socket do CPython; o issue não especifica nenhum arquivo nem teste, então localize-os pesquisando por fromfd. Reproduza a falha com valores inválidos de family, type ou proto e confirme que o descritor duplicado é fechado quando a construção gera uma exceção. O trabalho estará concluído quando o teste de regressão cobrir essas falhas e o descritor não vazar mais.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Python
- Estrelas
- 77.7k
- Forks
- 38.3k
- Merge médio
- 12h 12min
- PRs com merge (30d)
- 650
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de python/cpython
-
tests topic-profiling type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
python/cpython#160334 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
extension-modules type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
Remove unused FVS_* macrosAbertainterpreter-core type-feature
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
python/cpython#160109 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
extension-modules type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
python/cpython#160001 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
stdlib topic-XML type-bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
Todas as issues de python/cpython
Issues semelhantes
-
Project submission:Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
slavakurilyak/awesome-ai-agents#845 ·
Mantenedores costumam responder em até 1 dia
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Abertadifficulty:2 enhancement good first issue
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 92/100
MakazhanAlpamys/Soup#2178 ·
Mantenedores costumam responder em até 1 dia
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
scverse/rapids-singlecell#854 ·
Mantenedores costumam responder em até 1 dia
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLTalvez já em andamento @ninglinLiu assumiu hoje. Abertaarea:frontend backend:slang bug direction:input
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 13 dias