[ 
https://issues.apache.org/jira/browse/ARROW-10475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17225729#comment-17225729
 ] 

David Li commented on ARROW-10475:
----------------------------------

Thanks for the report. It looks like uriparser (the library we use to handle 
URIs) removes brackets for IPv6 hosts, so we can add them back when we see an 
IPv6 address.

> [С++] Arrow Flight Server / Client cannot be initialized with Ipv6 host
> -----------------------------------------------------------------------
>
>                 Key: ARROW-10475
>                 URL: https://issues.apache.org/jira/browse/ARROW-10475
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++, FlightRPC
>            Reporter: Zosimova Zhanna
>            Priority: Major
>             Fix For: 3.0.0
>
>
> 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:
> {code:java}
> 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; {code}
> The output seems to be ok:
> {code:java}
> Status=OK
> Location=grpc+tcp://[::]:9993{code}
> After that I initialized FlightServerBase using method Init(options).
> In flight library I wrote next 3 lines before [code|#L825]
> {code:java}
> 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;{code}
>  
> The output is:
> {code:java}
> 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"}{code}
> Location returns host without square brackets that must be used in addresses 
> with port. The problem is here:
> {code:java}
> std::stringstream address;
> address << location.uri_->host() << ':' << location.uri_->port_text();{code}
> The same issue is also observed in the client [code|#L845]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to