adamreeve commented on PR #44377:
URL: https://github.com/apache/arrow/pull/44377#issuecomment-2427738587

   The Flight docs specify other ways to reuse the same server location though, 
either using an empty list of locations or the `arrow-flight-reuse-connection:` 
URI scheme. I guess you might want to reuse the same host with a different 
port, but this isn't how 0.0.0.0 is interpreted by other implementations, at 
least the Rust and C++ ones I've looked at. They don't have any special 
handling of 0.0.0.0 that I could find so it appears that that IP address is 
just interpreted as the localhost/loopback device by the underlying GRPC 
library or lower level networking library.
   
   From looking into this a bit more, it seems like using 0.0.0.0 to refer to 
localhost/loopback when used as a target IP is non-standard but not that 
uncommon, and the C# `System.Net` library is just more strict about following 
specifications. Eg. see discussions at 
https://serverfault.com/questions/706137/why-does-0-0-0-0-resolve-to-the-loopback-device
 and 
https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0.
   
   Given that this would be fixed in either the Rust or C# integration test 
code without changing the Flight libraries, I guess it's not too consequential 
which approach is used, and I'm happy to update the C# integration test client 
to handle this. But the integration test code may be used by users as an 
example of what to do, so it seems like changing the Rust server might be best 
to set a good example of what to do to provide a more compatible server.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to