Demangle Cython __pyx_* symbols in native stack frames
Mantenedores costumam responder em até 1 dia
@alexander-alderman-webb já está trabalhando nisso.
Desde 12/6/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Native crash frames generated by Cython-compiled code appear as mangled C
symbols (e.g. __pyx_pw_6module_3func) in sentry-native stack traces, making
them unreadable without manual demangling. The Python SDK captures Cython
frames correctly at the Python level (.pyx file, line number), but when a
crash occurs in the native layer of a Cython extension, the native stack frames
shown in Sentry are opaque.
Current behavior
- Python-level Cython frames (captured by sentry-python via
sys.exc_info())
show correct.pyxsource file and line number - Native frames from the C code generated by Cython (captured by sentry-native
on crash) show raw mangled symbols:__pyx_pw_6module_3func_1name,__pyx_f_6module_3ClassName_method, etc. - C++ demangling (
__cxa_demangle) does not apply to Cython's naming scheme - No Cython-specific demangling exists in sentry-python or the Sentry backend
Gap
Cython uses a deterministic, documented symbol naming convention for the C code
it generates. A demangler can reconstruct the original Python-facing name from
a __pyx_* symbol:
__pyx_pw_<module>_<n><name>→ Python wrapper for<module>.<name>__pyx_f_<module>_<ClassName>_<method>→ C-level function for<module>.<ClassName>.<method>
This demangling could be applied as a post-processing step in theGnuBacktraceIntegration or as a standalone CythonIntegration, enriching
native frames with human-readable Cython source names before the event is sent
to Sentry.
Options
- Extend
GnuBacktraceIntegrationto detect and demangle__pyx_*symbols
in parsed backtrace frames — lowest friction, reuses existing pipeline - Add a standalone
CythonIntegrationevent processor that post-processes
all native frames across exception and crash events — cleaner separation,
applicable beyondGnuBacktrace-formatted strings - Implement server-side demangling in the Sentry symbolicator for
__pyx_*
symbols — transparent to SDK users, but requires changes outside this repo
References
- Cython generated C naming conventions: https://cython.readthedocs.io/en/latest/src/userguide/debugging.html
- Existing
GnuBacktraceIntegration:sentry_sdk/integrations/gnu_backtrace.py
Action taken on behalf of Angelo de Voer.
- Linguagem predominante
- Python
- Estrelas
- 2.2k
- Forks
- 680
- Merge médio
- 1d 3h
- PRs com merge (30d)
- 234
Preparar o ambiente
- 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 getsentry/sentry-python
-
OpenAI Agents integration emits `PydanticDeprecatedSince20` on tool calls - `_set_output_data` calls `dict()`Talvez já em andamento @alexander-alderman-webb assumiu há 2 dias. AbertaBug Python
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
getsentry/sentry-python#7827 · 4 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Scope._transaction not cleared when span is set to NoneTalvez já em andamento @Hashim1999164 assumiu hoje. AbertaBug Python
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
getsentry/sentry-python#7774 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
Remove send_default_pii from asyncpgTalvez já em andamento @ericapisani assumiu há 2 dias. AbertaPython Task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
getsentry/sentry-python#7652 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Python Task
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
getsentry/sentry-python#7569 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Docs Python
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
getsentry/sentry-python#7568 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de getsentry/sentry-python
Issues semelhantes
-
Claiming namespace apexdevAbertanamespace operations
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
EclipseFdn/open-vsx.org#13737 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
zhuima/awesome-cloudflare#237 ·
-
Zero-token evaluations are treated as missing cost in selectionTalvez já em andamento @sylvesterkaczmarek assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
google-research/rrsi#6 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
aws-samples/sample-aws-genai-db-modernizer#294 ·
Mantenedores costumam responder em até 1 dia
-
feedback simulation workshop
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
githubnext/gh-aw-workshop#4174 ·
Mantenedores costumam responder em até 1 dia