-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
GH-44361: [C#][Integration] Include .NET in Flight integration tests #44377
GH-44361: [C#][Integration] Include .NET in Flight integration tests #44377
Conversation
Specify locations in GetFlightInfo using the correct scheme, and handle creating GRPC channels using this scheme.
@@ -64,7 +64,7 @@ protected virtual void Dispose(bool disposing) | |||
{ | |||
if (!_disposed) | |||
{ | |||
_flightDataStream.Dispose(); | |||
_flightDataStream?.Dispose(); |
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 isn't required for any of the included tests, but before disabling the primitive_no_batches
test, it would crash here with a NullReferenceException due to the writer being disposed before the stream was created.
With this fix, writing doesn't crash, but the data isn't found when trying to retrieve it.
This is awesome; I didn't even know this test gap existed. By the way, I have a proposed fix for #38045 at https://github.com/CurtHagenlocher/arrow/tree/dev/curth/FlightDictionaries which I didn't feel great about committing due to lack of test coverage. It'll be interesting to see whether it works. |
There was a failure running the new tests in CI. Surprisingly it's a C++ and C# test, which was the only combination I tested locally... I'll try to figure out what's gone wrong here:
|
Cool, it would be nice to fix that! |
There was a race condition where the C# client could try to request the data before the server stored it here:
I could reliably reproduce it by adding a small sleep in the C++ server before that line. Reading to the end of the response stream in the client seems to fix it. |
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.
Thanks, this is great!
I'll give some people more familiar with the infrastructure some time to comment before committing.
After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 1dcd145. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
Rationale for this change
See #44361. This allows testing compatibility of the .NET Flight implementation with other Flight implementations.
What changes are included in this PR?
Apache.Arrow.Flight.IntegrationTest
project that can run in server or client mode for Flight integration tests.Are these changes tested?
These changes are tests.
Are there any user-facing changes?
No