Skip to content

uWSGI Segmentation Fault #4051

@aqtfox

Description

@aqtfox

Self-Hosted Version

25.10.0

CPU Architecture

x86_64

Docker Version

28.1.1, build 4eba37

Docker Compose Version

2.35.1

Machine Specification

  • My system meets the minimum system requirements of Sentry

Steps to Reproduce

The crash happens everyday, this might be related to: /sentry/sentry.conf.py: "max-worker-lifetime": 86400, lowering it makes it trigger more frequently, besides that I have no concrete way to trigger it.

I did set:

    "http-keepalive": 15,
    "workers": 2,
    "threads": 2,

I have ssl/tls on:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SOCIAL_AUTH_REDIRECT_IS_HTTPS = True

Expected Result

To not crash

Actual Result

sentry_instal_log.txt

i have attached the install log and relevant web-1 log:

web-1  | 09:52:22 [INFO] sentry.access.api: api.access (method='GET' view='sentry.web.frontend.home.HomeView' response='302' is_frontend_request='False' path='/' caller_ip='127.0.0.1' user_agent='curl/8.14.1' rate_limited='False' request_duration_seconds='0.003969907760620117' rate_limit_type='DNE')
web-1  | ...The work of process 16659 is done. Seeya!
web-1  | !!! uWSGI process 16659 got Segmentation Fault !!!
web-1  | *** backtrace of 16659 ***
web-1  | /.venv/lib/python3.13/site-packages/pyuwsgi.cpython-313-x86_64-linux-gnu.so(uwsgi_backtrace+0x2f) [0x7fa156bfd31f]
web-1  | /.venv/lib/python3.13/site-packages/pyuwsgi.cpython-313-x86_64-linux-gnu.so(uwsgi_segfault+0x2f) [0x7fa156bfd71f]
web-1  | /lib/x86_64-linux-gnu/libc.so.6(+0x3c050) [0x7fa157138050]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1c69bf) [0x7fa1574a69bf]
web-1  | /usr/local/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so(+0x14d0f) [0x7fa1561b3d0f]
web-1  | /usr/local/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so(+0x17a41) [0x7fa1561b6a41]
web-1  | /usr/local/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so(+0x1c13c) [0x7fa1561bb13c]
web-1  | /usr/local/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so(+0x1c836) [0x7fa1561bb836]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1d4e4d) [0x7fa1574b4e4d]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(PyObject_Vectorcall+0x58) [0x7fa15746a318]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(_PyEval_EvalFrameDefault+0x95bb) [0x7fa1574819fb]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1d925a) [0x7fa1574b925a]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1c6b23) [0x7fa1574a6b23]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(_PyEval_EvalFrameDefault+0x57f9) [0x7fa15747dc39]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1d925a) [0x7fa1574b925a]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1c6b23) [0x7fa1574a6b23]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(_PyEval_EvalFrameDefault+0x57f9) [0x7fa15747dc39]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1d92d6) [0x7fa1574b92d6]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(_PyEval_EvalFrameDefault+0x57f9) [0x7fa15747dc39]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x1d92d6) [0x7fa1574b92d6]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x2a78a3) [0x7fa1575878a3]
web-1  | /usr/local/bin/../lib/libpython3.13.so.1.0(+0x21d298) [0x7fa1574fd298]
web-1  | /lib/x86_64-linux-gnu/libc.so.6(+0x891f5) [0x7fa1571851f5]
web-1  | /lib/x86_64-linux-gnu/libc.so.6(__clone+0x40) [0x7fa157204b40]
web-1  | *** end of backtrace ***
web-1  | worker 1 killed successfully (pid: 16659)
web-1  | Respawned uWSGI worker 1 (new pid: 36273)
web-1  | WSGI app 0 (mountpoint='') ready in 21 seconds on interpreter 0x7fa1577d8a70 pid: 36273 (default app)

-- cut --

web-1  | 10:18:56 [INFO] sentry.access.api: api.access (method='GET' view='sentry.web.frontend.home.HomeView' response='302' is_frontend_request='False' path='/' caller_ip='127.0.0.1' user_agent='curl/8.14.1' rate_limited='False' request_duration_seconds='0.0036325454711914062' rate_limit_type='DNE')
web-1  | ...The work of process 16660 is done. Seeya!
web-1  | 10:19:27 [INFO] sentry.access.api: api.access (method='GET' view='sentry.web.frontend.home.HomeView' response='302' is_frontend_request='False' path='/' caller_ip='127.0.0.1' user_agent='curl/8.14.1' rate_limited='False' request_duration_seconds='0.004575967788696289' rate_limit_type='DNE')
web-1  | Traceback (most recent call last):
web-1  |   File "/.venv/lib/python3.13/site-packages/sentry_sdk/transport.py", line 541, in send_envelope_wrapper
web-1  |     self._send_envelope(envelope)
web-1  |     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
web-1  |   File "/.venv/lib/python3.13/site-packages/sentry_sdk/transport.py", line 474, in _send_envelope
web-1  |     self._send_request(
web-1  |     ~~~~~~~~~~~~~~~~~~^
web-1  |         body.getvalue(),
web-1  |         ^^^^^^^^^^^^^^^^
web-1  |     ...<2 lines>...
web-1  |         envelope=envelope,
web-1  |         ^^^^^^^^^^^^^^^^^^
web-1  |     )
web-1  |     ^
web-1  |   File "/usr/src/sentry/src/sentry/utils/sdk.py", line 286, in patched_send_request
web-1  |     return _send_request(*args, **kwargs)
web-1  |   File "/.venv/lib/python3.13/site-packages/sentry_sdk/transport.py", line 332, in _send_request
web-1  |     response = self._request(
web-1  |         "POST",
web-1  |     ...<2 lines>...
web-1  |         headers,
web-1  |     )
web-1  |   File "/.venv/lib/python3.13/site-packages/sentry_sdk/transport.py", line 744, in _request
web-1  |     response = self._pool.request(
web-1  |         method,
web-1  |     ...<10 lines>...
web-1  |         },
web-1  |     )
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/interfaces.py", line 45, in request
web-1  |     response = self.handle_request(request)
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py", line 256, in handle_request
web-1  |     raise exc from None
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/connection_pool.py", line 236, in handle_request
web-1  |     response = connection.handle_request(
web-1  |         pool_request.request
web-1  |     )
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/connection.py", line 101, in handle_request
web-1  |     raise exc
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/connection.py", line 78, in handle_request
web-1  |     stream = self._connect(request)
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_sync/connection.py", line 156, in _connect
web-1  |     stream = stream.start_tls(**kwargs)
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_backends/sync.py", line 170, in start_tls
web-1  |     raise exc
web-1  |   File "/.venv/lib/python3.13/site-packages/httpcore/_backends/sync.py", line 165, in start_tls
web-1  |     sock = ssl_context.wrap_socket(
web-1  |         self._sock, server_hostname=server_hostname
web-1  |     )
web-1  |   File "/usr/local/lib/python3.13/ssl.py", line 455, in wrap_socket
web-1  |     return self.sslsocket_class._create(
web-1  |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
web-1  |         sock=sock,
web-1  |         ^^^^^^^^^^
web-1  |     ...<5 lines>...
web-1  |         session=session
web-1  |         ^^^^^^^^^^^^^^^
web-1  |     )
web-1  |     ^
web-1  |   File "/usr/local/lib/python3.13/ssl.py", line 1067, in _create
web-1  |     self._sslobj = self._context._wrap_socket(
web-1  |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~^
web-1  |         self, server_side, self.server_hostname,
web-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
web-1  |         owner=self, session=self._session,
web-1  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
web-1  |     )
web-1  |     ^
web-1  | TypeError: 'str' object is not callable
web-1  | 10:19:29 [ERROR] sentry_sdk.errors: Internal error in sentry_sdk
web-1  | panicked at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/thread/local.rs:281:25:
web-1  |
web-1  | thread panicked while processing panic. aborting.
web-1  | worker 2 killed successfully (pid: 16660)
web-1  | Respawned uWSGI worker 2 (new pid: 36660)
web-1  | WSGI app 0 (mountpoint='') ready in 20 seconds on interpreter 0x7fa1577d8a70 pid: 36660 (default app)

Event ID

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Status

    Waiting for: Product Owner

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions