opentelemetry-test-utils: enable weaver tests on PyPy#5302
Open
mwimpelberg28 wants to merge 3 commits into
Open
opentelemetry-test-utils: enable weaver tests on PyPy#5302mwimpelberg28 wants to merge 3 commits into
mwimpelberg28 wants to merge 3 commits into
Conversation
) 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #5176.
The weaver tests were excluded from PyPy (via
; platform_python_implementation != 'PyPy'conditions intest-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:
platform_python_implementation != 'PyPy'exclusions fromtest-requirements.txttest-requirements.txtto drop the now-incorrect "CPython only" notetox.ininoting whypypy3-test-opentelemetry-test-utilsworksTest plan
test_weaver_live_check.pyon PyPy 3.10 locally — 6 passed, 0 failedpypy3-test-opentelemetry-test-utilspasses🤖 Generated with Claude Code