python / python/cpython

Need to keep traceback alive in WITH_EXCEPT_START

Aberta
#130,595 4 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

3.13 3.14 3.15 interpreter-core type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug report

Bug description:

Currently in WITH_EXCEPT_START the interpreter loop gets the traceback from the exception object and then immediately decref's it before calling the __exit__ function. But the __exit__ function may not incref the traceback (if it's not an interpretedPython function) and could cause the traceback to be replaced on the exception, leading it holding onto a freed traceback.

CPython versions tested on:

CPython main branch, 3.12

Operating systems tested on:

Linux

Linked PRs
  • gh-130562
  • gh-130626

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Revise primeiro os PRs vinculados gh-130562 e gh-130626; depois, localize a implementação de WITH_EXCEPT_START no loop do interpretador do CPython. Verifique se o traceback continua válido enquanto exit é executado e adicione ou atualize a cobertura para o cenário de substituição e tempo de vida relatado.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
compilers
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.