[
https://issues.apache.org/jira/browse/ARROW-10475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zosimova Zhanna updated ARROW-10475:
------------------------------------
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:
{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]
was:
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]
> [С++] 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
>
> 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)