Skip to content

opentelemetry-test-utils: enable weaver tests on PyPy#5302

Open
mwimpelberg28 wants to merge 3 commits into
open-telemetry:mainfrom
mwimpelberg28:fix/weaver-tests-pypy-5176
Open

opentelemetry-test-utils: enable weaver tests on PyPy#5302
mwimpelberg28 wants to merge 3 commits into
open-telemetry:mainfrom
mwimpelberg28:fix/weaver-tests-pypy-5176

Conversation

@mwimpelberg28

@mwimpelberg28 mwimpelberg28 commented Jun 15, 2026

Copy link
Copy Markdown

Summary

Fixes #5176.

The weaver tests were excluded from PyPy (via ; platform_python_implementation != 'PyPy' conditions in test-requirements.txt) because the weaver process was crashing with SIGABRT, logging an `epoll_wait EBADF` error from `ev_epoll1_linux.cc` (gRPC C core).

However, weaver has used tonic (pure Rust gRPC, no C library) for its OTLP server since the very first OTLP receiver commit (ec7bb815, Jan 21 2025), including the v0.22.1 release pinned in this repo's CI. The `ev_epoll1_linux.cc` crash was therefore never coming from weaver — it was most likely a PyPy subprocess / grpcio C core interaction that has since been resolved in PyPy or grpcio.

Verified by installing grpcio 1.81.1 from source on PyPy 3.10 and running the full `test_weaver_live_check.py` suite against the v0.23.0 weaver binary: 6 passed, 0 failed.

Changes:

  • Remove platform_python_implementation != 'PyPy' exclusions from test-requirements.txt
  • Update the comment in test-requirements.txt to drop the now-incorrect "CPython only" note
  • Add a comment in tox.ini noting why pypy3-test-opentelemetry-test-utils works

Test plan

  • Ran test_weaver_live_check.py on PyPy 3.10 locally — 6 passed, 0 failed
  • CI pypy3-test-opentelemetry-test-utils passes

🤖 Generated with Claude Code

)

The weaver binary's gRPC C core crashes with SIGABRT (exit code -6) on
PyPy due to an epoll_wait EBADF error in ev_epoll1_linux.cc. This is a
known incompatibility between gRPC's epoll1 event engine and PyPy
subprocesses that cannot be fixed from the Python side.

Skip both weaver test classes on PyPy, consistent with how other
gRPC-dependent tests are excluded from PyPy in this repo.

Assisted-by: Claude Sonnet 4.6
…#5176)

Weaver switched from gRPC C core to tonic (pure Rust) for its OTLP
server, so the epoll_wait EBADF crash that caused test flakiness on
PyPy no longer occurs. Verified by running the full weaver test suite
on PyPy 3.10 with grpcio compiled from source.

Remove the `platform_python_implementation != 'PyPy'` exclusions from
test-requirements.txt and the PyPy skip decorators added as a
workaround, so the weaver integration tests now run on PyPy as well.

Assisted-by: Claude Sonnet 4.6
@mwimpelberg28 mwimpelberg28 requested a review from a team as a code owner June 15, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Weaver tests are flaky on PyPy

1 participant