=================================== FAILURES ===================================
______________________ test_graceful_shutdown[ephemeral] _______________________
[gw1] linux -- Python 3.13.5 /home/runner/work/relay/relay/.venv/bin/python3
Traceback (most recent call last):
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 341, in from_call
result: TResult | None = func()
~~~~^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 242, in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 182, in _multicall
return outcome.get_result()
~~~~~~~~~~~~~~~~~~^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_result.py", line 100, in get_result
raise exc.with_traceback(exc.__traceback__)
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
yield
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
yield
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/logging.py", line 846, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/logging.py", line 829, in _runtest_for
yield
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/capture.py", line 880, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call
item.runtest()
~~~~~~~~~~~~^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/python.py", line 1627, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/runner/work/relay/relay/.venv/lib/python3.13/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/home/runner/work/relay/relay/tests/integration/test_shutdown.py", line 64, in test_graceful_shutdown
sock.sendall(request[-1:])
~~~~~~~~~~~~^^^^^^^^^^^^^^
ConnectionResetError: [Errno 104] Connection reset by peer
----------------------------- Captured stderr call -----------------------------
mimalloc: warning: unable to allocate aligned OS memory directly, fall back to over-allocation (size: 0x20000 bytes, address: 0x7F53752BB000, alignment: 0x10000, commit: 1)
2026-04-08T14:43:39.274187Z INFO relay_log::setup: Initialized Sentry client options release="relay@26.3.1+f8e49d0fd8c024e99886e1bd5fbdb1980b9d2f5a" traces_sample_rate=1.0
2026-04-08T14:43:39.285275Z INFO relay_config::config: generating new relay credentials
mimalloc: warning: unable to allocate aligned OS memory directly, fall back to over-allocation (size: 0x20000 bytes, address: 0x7FB6D2EF7000, alignment: 0x10000, commit: 1)
2026-04-08T14:43:39.301073Z INFO relay_log::setup: Initialized Sentry client options release="relay@26.3.1+f8e49d0fd8c024e99886e1bd5fbdb1980b9d2f5a" traces_sample_rate=1.0
2026-04-08T14:43:39.312583Z INFO relay::setup: launching relay from config folder /tmp/pytest-of-runner/pytest-0/popen-gw1/test_graceful_shutdown_ephemer0/relay-1
2026-04-08T14:43:39.312611Z INFO relay::setup: relay mode: managed
2026-04-08T14:43:39.312628Z INFO relay::setup: relay id: 700d85ef-6543-4640-a2fd-7039b568758e
2026-04-08T14:43:39.312638Z INFO relay::setup: public key: ALFqjfvC-5gmgszlvbZkSSt2eyAQ17fmzHVRI7gv7bk
2026-04-08T14:43:39.312656Z INFO relay::setup: log level: trace
2026-04-08T14:43:39.313452Z INFO relay_server: relay server starting
2026-04-08T14:43:39.314802Z INFO relay_server::services::outcome: Configured to emit outcomes as client reports
2026-04-08T14:43:39.315235Z INFO relay_server::services::outcome_aggregator: outcome aggregator started
2026-04-08T14:43:39.315671Z INFO relay_server::services::outcome: OutcomeProducer started.
2026-04-08T14:43:39.315747Z INFO relay_server::services::global_config: global config service starting
2026-04-08T14:43:39.315855Z INFO relay_server::services::global_config: requesting global config from upstream
2026-04-08T14:43:39.315923Z INFO relay_server::services::projects::source::upstream: project upstream cache started
2026-04-08T14:43:39.326084Z INFO relay_server::services::upstream: registering with upstream descriptor=http://127.0.0.1:34731/
2026-04-08T14:43:39.329213Z DEBUG relay_server::services::upstream: got register challenge token="123"
2026-04-08T14:43:39.329233Z DEBUG relay_server::services::upstream: sending register challenge response
2026-04-08T14:43:39.330815Z INFO relay_server::services::upstream: relay successfully registered with upstream
2026-04-08T14:43:39.333611Z INFO relay_server::services::global_config: received global config from upstream
2026-04-08T14:43:39.370426Z INFO relay_server::service: starting 1 store workers
2026-04-08T14:43:39.370697Z INFO relay_server::service: starting 3 envelope processing workers
2026-04-08T14:43:39.370734Z TRACE relay_server::services::buffer::envelope_buffer: PolymorphicEnvelopeBuffer: initializing sqlite envelope buffer
2026-04-08T14:43:39.370908Z INFO relay_server::services::buffer::envelope_store::sqlite: buffer file /tmp/tmp5lwxj0fx/database.db
2026-04-08T14:43:39.372267Z INFO relay_server::services::metrics::router: metrics router started
2026-04-08T14:43:39.372342Z INFO relay_server::services::relays: key cache started
2026-04-08T14:43:39.372632Z TRACE relay_system::service::concurrent: Concurrent service loop iteration
2026-04-08T14:43:39.372694Z INFO relay_server::services::server: spawning http server
2026-04-08T14:43:39.372720Z INFO relay_server::services::server: listening on http://127.0.0.1:58317/
2026-04-08T14:43:39.385469Z INFO relay_server::services::buffer: EnvelopeBufferService 0: starting
2026-04-08T14:43:39.394436Z DEBUG request{method=GET uri=/api/relay/healthcheck/live/ version=HTTP/1.1}: tower_http::trace::on_request: started processing request
2026-04-08T14:43:39.394655Z DEBUG request{method=GET uri=/api/relay/healthcheck/live/ version=HTTP/1.1}: tower_http::trace::on_response: finished processing request latency=0 ms status=200
2026-04-08T14:43:39.398266Z DEBUG request{method=GET uri=/api/relay/healthcheck/ready/ version=HTTP/1.1}: tower_http::trace::on_request: started processing request
2026-04-08T14:43:39.398415Z DEBUG request{method=GET uri=/api/relay/healthcheck/ready/ version=HTTP/1.1}: tower_http::trace::on_response: finished processing request latency=0 ms status=200
2026-04-08T14:43:39.399928Z INFO relay_system::controller: SIGTERM received, stopping in 5s
2026-04-08T14:43:39.399978Z INFO relay_server::services::server: Shutting down HTTP server
2026-04-08T14:43:39.400012Z INFO relay_server::services::metrics::aggregator: Shutting down metrics aggregator default
2026-04-08T14:43:39.400045Z TRACE relay_server::services::buffer: EnvelopeBufferService: shutting down gracefully
2026-04-08T14:43:39.400058Z TRACE relay_server::services::buffer::envelope_buffer: shutdown procedure not needed
2026-04-08T14:43:39.400104Z INFO relay_server::services::outcome_aggregator: outcome aggregator stopped
2026-04-08T14:43:39.400624Z DEBUG relay_server::services::metrics::aggregator: Force flushed 64 partitions
------------------------------ Captured log call -------------------------------
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/666/envelope/ HTTP/1.1" 200 -
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/0/relays/register/challenge/ HTTP/1.1" 200 -
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/0/relays/register/response/ HTTP/1.1" 200 -
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/0/relays/projectconfigs/?version=3 HTTP/1.1" 200 -
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/666/envelope/ HTTP/1.1" 200 -
INFO werkzeug:_internal.py:97 127.0.0.1 - - [08/Apr/2026 14:43:39] "POST /api/666/envelope/ HTTP/1.1" 200 -
============================= slowest 5 durations ==============================
33.47s call integration/test_spans.py::test_rate_limit_is_consistent_between_transaction_and_spans[666-transaction]
33.32s call integration/test_spans.py::test_rate_limit_is_consistent_between_transaction_and_spans[None-transaction]
17.52s call integration/test_spans.py::test_rate_limit_is_consistent_between_transaction_and_spans[None-transaction_indexed]
17.50s call integration/test_spans.py::test_rate_limit_is_consistent_between_transaction_and_spans[666-transaction_indexed]
15.62s call integration/test_store.py::test_processing_quota_transaction_indexing[6]
=========================== short test summary info ============================
SKIPPED [14] tests/integration/fixtures/gobetween.py:22: Gobetween not installed
SKIPPED [14] tests/integration/fixtures/haproxy.py:22: HAProxy not installed
SKIPPED [1] tests/integration/test_autoscaling.py:29: Fails in github CI for unknown reasons
SKIPPED [1] tests/integration/test_basic.py:139: Flaky test
FAILED tests/integration/test_shutdown.py::test_graceful_shutdown[ephemeral] - ConnectionResetError: [Errno 104] Connection reset by peer
Flakiness Type
Timeout
Name of Test
tests/integration/test_shutdown.py::test_graceful_shutdown
Link to Test Run
https://github.com/getsentry/relay/actions/runs/24140717098/job/70441189977#step:11:3496
Details