Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to OTel-Arrow core library v0.25.0 (arrow/v17) #34179

Closed
wants to merge 18 commits into from

Conversation

jmacd
Copy link
Contributor

@jmacd jmacd commented Jul 19, 2024

Description: This is a routine update following #33567. Includes Arrow v17. Note that the introduction of Arrow v17 is not directly responsible for the minor changes needed to continue passing tests. It appears to be a runtime-behavioral change that triggered existing test flakes and deficiencies. Adds a context.Done() branch in replyToCaller() to ensure that the receiver does not leak resources as explained in open-telemetry/otel-arrow#237.

Link to tracking Issue: #33567

Testing: Test flakes fixed, new test introduced. Fixes open-telemetry/otel-arrow#237.

@github-actions github-actions bot added the cmd/otelcontribcol otelcontribcol command label Jul 19, 2024
@jmacd jmacd marked this pull request as draft July 19, 2024 22:18
@jmacd jmacd marked this pull request as ready for review July 22, 2024 22:01
receiver/otelarrowreceiver/otelarrow_test.go Outdated Show resolved Hide resolved
Co-authored-by: Matthew Wear <matthew.wear@gmail.com>
@jmacd jmacd marked this pull request as draft July 23, 2024 23:33
@jmacd
Copy link
Contributor Author

jmacd commented Jul 23, 2024

I will re-open the change with only the testing-related and context-cancellation changes that were triggered here, then I will follow with the OTel-Arrow v0.25.0 update.

@jmacd jmacd closed this Jul 23, 2024
codeboten pushed a commit that referenced this pull request Jul 26, 2024
**Description:** Several test flakes were identified in
#34179.
This improves the tests and adds one new test. Adds one new
context-canceled return path, fixing a potential goroutine leak covered
by new testing.

**Link to tracking Issue:** Fixes
open-telemetry/otel-arrow#237

**Testing:** 

- For the test change in
`receiver/otelarrowreceiver/internal/arrow/arrow_test.go` note that the
test now allows out-of-order responses, which is explicitly a feature.
Out-of-order responses may have resulted from performance changes in
Arrow v17.
- For the context handling in
`receiver/otelarrowreceiver/internal/arrow/arrow.go` this is needed to
satisfy the HalfOpen test introduced here. A comment in the code
explains how previously gRPC stream resources could leak
- The ` TestOTelArrowShutdown` test improves readability. It had been
using a test helper designed originally for the OTLP (non-streaming)
test, which made it convoluted here. A sync.Once has been eliminated.
- The new test `TestOTelArrowHalfOpenShutdown` exercises the
"adversarial" condition where a client never calls `Recv()` on their
stream handle. The new context handling is required to pass the test w/o
goroutine leaks.

---------

Co-authored-by: Matthew Wear <matthew.wear@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cmd/otelcontribcol otelcontribcol command exporter/otelarrow internal/otelarrow receiver/otelarrow Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adversarial stream client issues
5 participants