match_regex_list raises IndexError when a pattern list contains an empty string

Open Beginner friendly
#6,504 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
74/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python
Domain
backend

Research direction

Start at sentry_sdk.utils.match_regex_list and trace its use from CeleryIntegration.exclude_beat_tasks. Reproduce the empty-string case with the example in the issue, then verify that an empty pattern is handled without raising IndexError while existing matching behavior remains intact.

Written by the indexing model from the issue text.

Description

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.

Dominant language
Python
Stars
2.2k
Forks
672
Avg merge
1d 13m
Merged PRs (30d)
212

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from getsentry/sentry-python

All issues in getsentry/sentry-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.