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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed

Conversation

carols10cents
Copy link
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 link
Contributor

@alamb alamb left a comment

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
Contributor

alamb commented Dec 31, 2020

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
Contributor Author

No problem at all, rebased! Thank you for the review 鉂わ笍

@codecov-io
Copy link

codecov-io commented Dec 31, 2020

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 Files Coverage 螖
rust/arrow-flight/src/utils.rs 0.00% <0.00%> (酶)
rust/datafusion/examples/flight_server.rs 0.00% <0.00%> (酶)
...ion-testing/src/bin/arrow-json-integration-test.rs 0.00% <酶> (酶)
...-testing/src/bin/flight-test-integration-client.rs 0.00% <0.00%> (酶)
...-testing/src/bin/flight-test-integration-server.rs 0.00% <0.00%> (酶)
...ng/src/flight_client_scenarios/auth_basic_proto.rs 0.00% <0.00%> (酶)
...ng/src/flight_client_scenarios/integration_test.rs 0.00% <0.00%> (酶)
...-testing/src/flight_client_scenarios/middleware.rs 0.00% <0.00%> (酶)
...integration-testing/src/flight_server_scenarios.rs 0.00% <0.00%> (酶)
...ng/src/flight_server_scenarios/auth_basic_proto.rs 0.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-me nevi-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
Contributor

nevi-me commented Jan 7, 2021

@carols10cents this needs a rebase :)

Copy link
Contributor

@nevi-me nevi-me left a comment

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
Copy link
Contributor

alamb commented Jan 8, 2021

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

shepmaster and 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
Copy link
Contributor Author

Rebased, and CI is looking good!

@nevi-me nevi-me removed the needs-rebase A PR that needs to be rebased by the author label Jan 9, 2021
@nevi-me nevi-me closed this in f202e70 Jan 9, 2021
@alamb
Copy link
Contributor

alamb commented Jan 9, 2021

馃帀

@carols10cents carols10cents deleted the rust-flight-integration branch January 9, 2021 14:32
GeorgeAp pushed a commit to sirensolutions/arrow that referenced this pull request Jun 7, 2021
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](hyperium/tonic#510); this is tracked in [ARROW-10961](https://issues.apache.org/jira/browse/ARROW-10961).

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

Closes apache#9049 from carols10cents/rust-flight-integration

Lead-authored-by: Carol (Nichols || Goulding) <carol.nichols@gmail.com>
Co-authored-by: Jake Goulding <jake.goulding@gmail.com>
Signed-off-by: Neville Dipale <nevilledips@gmail.com>
Sign up for free to 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.

None yet

5 participants