match_regex_list raises IndexError when a pattern list contains an empty string

Aberta Para iniciantes
#6,504 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
74/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece em sentry_sdk.utils.match_regex_list e rastreie seu uso a partir de CeleryIntegration.exclude_beat_tasks. Reproduza o caso de uma string vazia com o exemplo na issue e, em seguida, verifique se um padrão vazio é tratado sem gerar IndexError, enquanto o comportamento de correspondência existente permanece intacto.

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

Descrição

Bug Python

sentry_sdk.utils.match_regex_list iterates a user-supplied list of patterns and, with the default substring_matching=False, checks item_matcher[-1] != "$". If any element is the empty string, ""[-1] raises IndexError: string index out of range.

from sentry_sdk.utils import match_regex_list
match_regex_list("anything", [""])

This is reachable from the Celery integration (CeleryIntegration.exclude_beat_tasks is passed to match_regex_list with the default mode), so an empty string in that user-configured list crashes instead of being handled.

Linguagem predominante
Python
Estrelas
2.2k
Forks
672
Merge médio
1d 13min
PRs com merge (30d)
212

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.

Mais de getsentry/sentry-python

Todas as issues de getsentry/sentry-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

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