Skip to content

ARROW-8853: [Rust] [Integration Testing] Enable Flight tests - #9049

Closed
carols10cents wants to merge 9 commits into
apache:masterfrom
integer32llc:rust-flight-integration
Closed

ARROW-8853: [Rust] [Integration Testing] Enable Flight tests #9049
carols10cents wants to merge 9 commits into
apache:masterfrom
integer32llc:rust-flight-integration

Conversation

@carols10cents

Copy link
Copy Markdown
Contributor

This PR has a few refactorings and then the main commit contains a new Flight integration test client and server 🎉

The middleware scenario tests are currently skipped because they will fail until tonic can be updated to a version containing a fix having to do with trailers; this is tracked in ARROW-10961.

Some Rust <-> Java integration tests will fail until this PR is merged; I'm happy to rebase once that goes in, but I wanted to get code review started on this. Thank you!!

@github-actions

Copy link
Copy Markdown

@alambalamb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed this code commit by commit (thanks @carols10cents for splitting it up into a easy-to-follow chain).

While I am not an expert in Arrow Flight, I did find the code easy to follow and understand and it made sense to me.

As predicted, some java tests failed on this integration test and I have pinged some people on #8963 and hopefully we can get that merged soon. The error was

RuntimeError: Command failed: java -Dio.netty.tryReflectionSetAccessible=true -Darrow.struct.conflict.policy=CONFLICT_APPEND -cp /arrow/java/flight/flight-core/target/flight-core-3.0.0-SNAPSHOT-jar-with-dependencies.jar org.apache.arrow.flight.example.integration.IntegrationTestClient -port 39459 -j /tmp/arrow-integration-xu49kq36/generated_null_trivial.json
With output:
--------------
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Verifying location grpc+tcp://0.0.0.0:39459
Unknown error
java.lang.IllegalArgumentException: A batch can only be consumed if it contains a single ArrowBuf.

When I looked at the rest of the logs, I see the rust producer is running and passing. ❤️ ❤️

2020-12-30T20:04:00.8176245Z ##########################################################
2020-12-30T20:04:00.8176859Z IPC: C++ producing, Rust consuming
2020-12-30T20:04:00.8177378Z ##########################################################
2020-12-30T20:05:45.7634027Z ##########################################################
2020-12-30T20:05:45.7634638Z IPC: Java producing, Rust consuming
2020-12-30T20:05:45.7635156Z ##########################################################

And there are others too.

Really nice work 🎉

@alamb

Copy link
Copy Markdown
Contributor

The full set of Rust CI tests did not run on this PR :(

Can you please rebase this PR against apache/master to pick up the changes in #9056 so that they do?

I apologize for the inconvenience.

@carols10cents

Copy link
Copy Markdown
ContributorAuthor

No problem at all, rebased! Thank you for the review ❤️

@codecov-io

codecov-io commented Dec 31, 2020

Copy link
Copy Markdown

Codecov Report

Merging #9049 (863420d) into master (a576cd7) will decrease coverage by 0.76%.
The diff coverage is 0.39%.

Impacted file tree graph

@@ Coverage Diff @@## master #9049 +/- ##
==========================================
- Coverage 82.57% 81.81% -0.77% 
==========================================
Files 204 214 +10 Lines 50879 51352 +473 ==========================================
- Hits 42014 42013 -1 - Misses 8865 9339 +474 
Impacted FilesCoverage Δ
rust/arrow-flight/src/utils.rs0.00% <0.00%> (ø)
rust/datafusion/examples/flight_server.rs0.00% <0.00%> (ø)
...ion-testing/src/bin/arrow-json-integration-test.rs0.00% <ø> (ø)
...-testing/src/bin/flight-test-integration-client.rs0.00% <0.00%> (ø)
...-testing/src/bin/flight-test-integration-server.rs0.00% <0.00%> (ø)
...ng/src/flight_client_scenarios/auth_basic_proto.rs0.00% <0.00%> (ø)
...ng/src/flight_client_scenarios/integration_test.rs0.00% <0.00%> (ø)
...-testing/src/flight_client_scenarios/middleware.rs0.00% <0.00%> (ø)
...integration-testing/src/flight_server_scenarios.rs0.00% <0.00%> (ø)
...ng/src/flight_server_scenarios/auth_basic_proto.rs0.00% <0.00%> (ø)
... and 17 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 91a4ec9...863420d. Read the comment docs.

@nevi-menevi-me added the needs-rebase A PR that needs to be rebased by the author label Jan 4, 2021
@nevi-me
nevi-me self-requested a review January 4, 2021 21:47
@nevi-me

Copy link
Copy Markdown
Contributor

@carols10cents this needs a rebase :)

@nevi-menevi-me left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've gone through the PR, and I don't have any comments. We can merge this after the blocking PR is merged, and the PR's been rebased.

@alamb

alamb commented Jan 8, 2021

Copy link
Copy Markdown
Contributor

@carols10cents -- #8963 was just merged - so hopefully after a rebase this PR will be ready too

@carols10cents
carols10centsforce-pushed the rust-flight-integration branch from 84d9b72 to a36694bCompareJanuary 8, 2021 13:34
shepmasterand others added 9 commits January 8, 2021 16:46
This function returns, potentially, a few dictionaries, and will always
return one record batch. Return these as a tuple rather than putting
them together in one vec to clarify.
This doesn't seem necessary
Tracked in ARROW-10961. There's a bug in tonic that doesn't handle
headers and trailers correctly; it has been fixed but a new version of
tonic needs to be released and used to get the fix.
@carols10cents
carols10centsforce-pushed the rust-flight-integration branch from a36694b to 863420dCompareJanuary 8, 2021 21:46
@carols10cents

Copy link
Copy Markdown
ContributorAuthor

Rebased, and CI is looking good!

@nevi-menevi-me removed the needs-rebase A PR that needs to be rebased by the author label Jan 9, 2021
@alamb

alamb commented Jan 9, 2021

Copy link
Copy Markdown
Contributor

🎉

@carols10cents
carols10cents deleted the rust-flight-integration branch January 9, 2021 14:32
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@carols10cents@alamb@codecov-io@nevi-me@shepmaster