[TEST] Make OTLP gRPC functional teardown deterministic - #4541
Draft
yigitcan-ozturk wants to merge 1 commit into
Draft
[TEST] Make OTLP gRPC functional teardown deterministic#4541yigitcan-ozturk wants to merge 1 commit into
yigitcan-ozturk wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4541 +/- ##
==========================================
- Coverage 83.47% 83.46% -0.01%
==========================================
Files 521 522 +1
Lines 20380 20440 +60
==========================================
+ Hits 17011 17059 +48
- Misses 3369 3381 +12 🚀 New features to boost your workflow:
|
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.
Contributes to #4489.
Problem
func_otlp_grpcintermittently exits with SIGSEGV / heap-corruption signatures during TLS failure cases after the normal ctest suite has already passed. The failure still reproduces with gRPC 1.83.1, so the earlier OpenSSLNO_ATEXITexplanation is not sufficient on its own.Hypothesis
The functional binary is short-lived. C++ channel wrappers release their own gRPC runtime references as the OpenTelemetry exporter/provider is destroyed, and the last release can initiate asynchronous gRPC global teardown immediately before
main()returns. TLS failure cases leave enough EventEngine/background teardown work to expose that race intermittently.Change
grpc_init()reference for the functional-test invocation;grpc_shutdown_blocking();This is intentionally a draft while CI and maintainer review validate whether the teardown barrier removes the intermittent failure. If the hypothesis is wrong, I will not promote this as a fix.
Validation target
The important signal is repeated maintainer-mode CMake coverage of the TLS functional cases, especially the paths that have previously failed with exit 134/139.