Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
We want to support Arrow Flight compatibility protocol in ClickHouse (https://github.com/ClickHouse/ClickHouse). Our code needs Ipv6 support.
In our code I wrote:
std::string host = "[::]"; int port = 9993; arrow::flight::Location location; auto status = arrow::flight::Location::ForGrpcTcp(host, port, &location); std::cerr << "Status=" << status.ToString() << std::endl; std::cerr << "Location=" << location.ToString() << std::endl;
The output seems to be ok:
Status=OK
Location=grpc+tcp://[::]:9993
After that I initialized FlightServerBase using method Init(options).
In flight library I wrote next 3 lines before code
std::cerr << "Location=" << location.ToString() << std::endl; std::cerr << "Host=" << location.uri_->host() << ", Port=" << location.uri_->port_text() << std::endl; std::cerr << "Host:Port=" << location.uri_->host() << ":" << location.uri_->port_text() << std::endl;
The output is:
Location=grpc+tcp://[::]:9993 Host=::, Port=9993 Host:Port=:::9993 E1103 03:18:01.978794160 612780 server_chttp2.cc:40] {"created":"@1604362681.978626229","description":"Name or service not known","errno":-2,"file":"../contrib/grpc/src/core/lib/iomgr/resolve_address_posix.cc","file_line":108,"os_error":"Name or service not known","syscall":"getaddrinfo","target_address":":::9993"}
Location returns host without square brackets that must be used in addresses with port. The problem is here:
std::stringstream address;
address << location.uri_->host() << ':' << location.uri_->port_text();
The same issue is also observed in the client code
Attachments
Attachments
Issue Links
- links to