python / python/cpython

JIT: _Py_uop_sym_set_recorded_type may receive a non-type at trace optimization time.

Aberta
#148,439 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

interpreter-core topic-JIT type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
35.9k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug report

Bug description:

_Py_uop_sym_set_recorded_type asserts PyType_Check, but it's possible to have an instance change its __class__/type to a non-PyType_Check-ed class after JIT trace but right before JIT optimization time.

I think the fix is to convert that to a check instead of an assert?

CPython versions tested on:

CPython main branch

Operating systems tested on:

No response

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

Comece localizando _Py_uop_sym_set_recorded_type e o caminho de otimização de trace do JIT que o chama. Reproduza a alteração de class descrita no relatório e, em seguida, verifique se a otimização lida com uma classe que não passa por PyType_Check sem a falha de asserção, e adicione ou atualize um teste de regressão se o local de teste relevante for encontrado.

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
3/5
Tempo estimado
1-2 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
52/100

Receba novas issues na sua caixa de entrada

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