-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-8853: [Rust] [Integration Testing] Enable Flight tests #8641
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
ARROW-8853: [Rust] [Integration Testing] Enable Flight tests #8641
Conversation
nevi-me
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM subject to CI, just comments that don't need any further action beyond response/confirmation
| Ok(()) | ||
| } | ||
|
|
||
| // TODO: should this be extended, abstracted, and moved out of test code and into production code? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my intuition says no, as I'm assuming that there'd be different ways of implementing authentication.
I have however not used Flight, so if the basic auth scenario is always this, we could move this into arrow-flight.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The C++ Flight client provides this Authenticate function and the ability to specify a ClientAuthHandler, but I'm not sure if that's the abstraction desired in Rust 🤷♀️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can always add it later to the core Rust library -- for now, having code in the example that does the work that people can use / follow seems pretty good to me
|
The archery unit tests are failing with this error: In the step before the unit tests are run, there's this: I'm not very familiar with Python but given it's November this seems likely...? I'm not sure the correct way to fix this, and I don't see any open PRs about it from a quick skim? The other failing test job says it's out of disk space, is there anything I can do about that? |
bf27024 to
087cedc
Compare
|
Ok, so, now the integration test job got cancelled after 360 min, and suspiciously it appears to be cancelled during the Flight tests after C++ -> C++ and C++ -> Java, right when I would expect C++ -> Rust to be, sooooo it's possible that it's my fault somehow. I will investigate more on Monday. |
alamb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is really cool @carols10cents . Thank you!
One very minor suggestion is to update https://github.com/integer32llc/arrow/blob/flight-integration-tests/rust/integration-testing/README.md to include mention of the new binaries, flight-test-integration
| Ok(()) | ||
| } | ||
|
|
||
| // TODO: should this be extended, abstracted, and moved out of test code and into production code? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can always add it later to the core Rust library -- for now, having code in the example that does the work that people can use / follow seems pretty good to me
|
Once the integration tests are passing, I think this PR is good to merge |
jorgecarleitao
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really impressive, @carols10cents . Thank you so much for this ❤️
429e6be to
b62184e
Compare
This adds Flight client and server implementations modeled after the behavior of the C++ Flight integration tests, and enables the Flight tests in the integration tests.
I had submitted this before but I think it got lost in a rebase somewhere. I think this is more correct and informative.
c8bce76 to
3af0c24
Compare
|
I've decided to stop wasting CI time on this because it's not nearly ready :) Will reopen a new PR when it is. |
|
Just to say that I really appreciate that you are working on this. Thank you so much ❤️ |
…ies with that of a RecordBatch This PR contains a series of refactorings to extract code from the IPC `FileWriter` and `StreamWriter` that generates `EncodedData` instances. I highly recommend reviewing commit-by-commit, I tried to make the changes fairly mechanical and easy to understand at each step. With those refactorings, it becomes easier to reuse the code with Flight too, so that when we're generating `FlightData` for a `RecordBatch`, we get the `FlightData` for the batch's dictionaries too. This will help in getting the Flight integration tests that include dictionaries to pass... I'm also having some unrelated protocol problems over in [this PR I'm working on](#8641) but this work will help there. Closes #8826 from carols10cents/refactor-file-stream-writer Authored-by: Carol (Nichols || Goulding) <carol.nichols@gmail.com> Signed-off-by: Neville Dipale <nevilledips@gmail.com>
…ies with that of a RecordBatch This PR contains a series of refactorings to extract code from the IPC `FileWriter` and `StreamWriter` that generates `EncodedData` instances. I highly recommend reviewing commit-by-commit, I tried to make the changes fairly mechanical and easy to understand at each step. With those refactorings, it becomes easier to reuse the code with Flight too, so that when we're generating `FlightData` for a `RecordBatch`, we get the `FlightData` for the batch's dictionaries too. This will help in getting the Flight integration tests that include dictionaries to pass... I'm also having some unrelated protocol problems over in [this PR I'm working on](apache/arrow#8641) but this work will help there. Closes #8826 from carols10cents/refactor-file-stream-writer Authored-by: Carol (Nichols || Goulding) <carol.nichols@gmail.com> Signed-off-by: Neville Dipale <nevilledips@gmail.com>
There are some parts of the tests that should probably be part of the
arrow-flightcrate instead, but that can be done in a future PR. Everything here is in the integration tests.