Skip to content

[С++][FlightRPC] Arrow Flight Server / Client cannot be initialized with Ipv6 host #26451

@asfimport

Description

@asfimport

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|#L825]

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|#L845]

Reporter: Zosimova Zhanna / @FawnD2
Assignee: David Li / @lidavidm

Original Issue Attachments:

PRs and other links:

Note: This issue was originally created as ARROW-10475. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions