[ https://issues.apache.org/jira/browse/ARROW-7200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16977508#comment-16977508 ]
Chengxin Ma commented on ARROW-7200: ------------------------------------ {{netstat}} shows: {{tcp6 0 0 :::31337 :::* LISTEN 3831/./arrow-flight}} (where {{arrow-flight}} is truncated from {{arrow-flight-perf-server}}). This looks OK. I checked the source code of the Flight benchmark, and it seems that the error is returned from the {{DoGet}} method. (https://github.com/apache/arrow/blob/master/cpp/src/arrow/flight/flight_benchmark.cc#L92) If I set {{--test_put}} to be {{true}}, I would get the following error: {{Failed with error: << IOError: Could not write record batch to stream:}} The screenshot below shows the result of testing {{DoPut}} with and without the server running. !Screen Shot 2019-11-19 at 14.41.40.png! Obviously the client is aware of the existence of the server, but somehow it can't read from nor write to the server. What could possible cause this problem? PS: I also tried the Hello World example of gRPC (https://grpc.io/docs/quickstart/cpp/) with some modification (changing localhost to the remote one), and it worked well. > Running Arrow Flight benchmark on two hosts doesn't work > -------------------------------------------------------- > > Key: ARROW-7200 > URL: https://issues.apache.org/jira/browse/ARROW-7200 > Project: Apache Arrow > Issue Type: Bug > Components: Benchmarking, C++, FlightRPC > Affects Versions: 0.15.0, 0.15.1 > Environment: AWS EC2 > Instance type: t3a.xlarge > AMI: ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20191002 > Number of instances: 2 > They are capable of pinging each other. > Reporter: Chengxin Ma > Priority: Major > Attachments: Screen Shot 2019-11-18 at 16.00.38.png, Screen Shot > 2019-11-19 at 14.41.40.png > > > I was trying to evaluate the performance of Apache Arrow Flight on two hosts > (one as the client and the other one as the server), using [the official > benchmark|[https://github.com/apache/arrow/blob/master/cpp/src/arrow/flight/flight_benchmark.cc]]. > Flags I used to build the project were: > > {code:java} > -DARROW_FLIGHT=ON > -DCMAKE_BUILD_TYPE=Debug > -DARROW_BUILD_BENCHMARKS=ON > {code} > > The branch I used was maint-0.15.x since there was a build error on the > master branch. _(The build error on master only existed in the environment > where I set up two hosts: AWS. On my local environment (macOS) the build was > successful on the master branch. I don't think this build error is relevant > to the issue since there is no difference in the cpp source code.)_ > On the host acting as the server, I ran > {code:java} > ./arrow-flight-perf-server{code} > On the host acting as the client, I ran > {code:java} > ./arrow-flight-benchmark --server_host ip-172-31-11-18{code} > It gives the following error: > {code:java} > Failed with error: << IOError: gRPC returned unavailable error, with message: > Connect Failed. Detail: Unavailable{code} > > If I ran > {code:java} > ./arrow-flight-benchmark --server_host ip-172-31-11-17{code} > the error will be different: > {code:java} > IOError: Server was not available after 10 attempts{code} > This is understandable since this host doesn't exist at all. > This indicates that Flight is able to find the existing host > (ip-172-31-11-18), but the communication somehow didn't succeed. > The benchmark works fine if I run it with the localhost, either by not > specifying the server_host flag or running the server in another process on > the same host. > I am not sure if the problem is in the environment or in the code itself. > Could someone please give me some hint on how to resolve the problem? -- This message was sent by Atlassian Jira (v8.3.4#803005)