[jira] [Commented] (ARROW-8587) [C++] Compilation error when linking arrow-flight-perf-server

2020-06-14 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-8587:


[~apitrou] The problem is gone.

I checked with {{HEAD}} pointing to {{3ccecfb36}}.
 {code}
Singularity> git rev-parse --short HEAD
3ccecfb36
{code}

> [C++] Compilation error when linking arrow-flight-perf-server
> -
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Assignee: Antoine Pitrou
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.0.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug 
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
>  I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
> output, but the Boost library that I installed from the package manger was of 
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?
> PS:
> I was able to build the benchmark 
> [before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with 
> the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very 
> similar to the one I'm using on my laptop.



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


[jira] [Created] (ARROW-8861) Memory not released until Plasma process is killed

2020-05-19 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-8861:
--

 Summary: Memory not released until Plasma process is killed
 Key: ARROW-8861
 URL: https://issues.apache.org/jira/browse/ARROW-8861
 Project: Apache Arrow
  Issue Type: Bug
  Components: C++ - Plasma
Affects Versions: 0.16.0
 Environment: Singularity container (Ubuntu 18.04)
Reporter: Chengxin Ma


Invoking the {{Delete(const ObjectID& object_id)}} method of a plasma client 
seems not really to free up the memory used by the object.

To reproduce:
 1. use {{htop}} (or other similar tools) to monitor memory usage;
 2. start up the Plasma Object Store by {{plasma_store -m 10 -s 
/tmp/plasma}};
 3. use {{put.py}} to put an object into Plasma;
 4. compile and run {{delete.cc}} ({{g++ delete.cc `pkg-config --cflags --libs 
arrow plasma` --std=c++11 -o delete}});
 5. kill the {{plasma_store}} process.

Memory usage drops at Step 5, rather than Step 4.

How to free up the memory while keeping Plasma Object Store running?

{{put.py}}:
{code:java}
from pyarrow import plasma

if __name__ == "__main__":
client = plasma.connect("/tmp/plasma")
object_id = plasma.ObjectID(20 * b"a")
object_size = 5
buffer = memoryview(client.create(object_id, object_size))
for i in range(5):
buffer[i] = i % 128
client.seal(object_id)
client.disconnect()
{code}
{{delete.cc}}:
{code:java}
#include "arrow/util/logging.h"
#include 

using namespace plasma;

int main(int argc, char **argv)
{
PlasmaClient client;
ARROW_CHECK_OK(client.Connect("/tmp/plasma"));
ObjectID object_id = ObjectID::from_binary("");

client.Delete(object_id);

ARROW_CHECK_OK(client.Disconnect());
}
{code}
 



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


[jira] [Commented] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-25 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-8587:


I've built the Flight benchmark on different platforms before and never needed 
to use {{ARROW_WITH_ZLIB=ON}}. I have no idea why it became necessary this time.
 I just reproduced the compilation error in a Singularity container. The 
container was built from [this definition 
file|https://github.com/MaChengxin/ArrowSAM/blob/73aaf579c14929e78dcbc22ff54436ff17784901/Singularity/Singularity].
{code:java}
Singularity> cd temp/arrow/cpp/
Singularity> mkdir release
Singularity> cd release/
Singularity> cmake .. -DCMAKE_BUILD_TYPE=Release -DARROW_DEPENDENCY_SOURCE=AUTO 
-DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON
...
Singularity> make
...
../../../release/libarrow_flight.so.18.0.0: undefined reference to 
`inflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to 
`deflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
collect2: error: ld returned 1 exit status
src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:156: recipe 
for target 'release/arrow-flight-perf-server' failed
make[2]: *** [release/arrow-flight-perf-server] Error 1
CMakeFiles/Makefile2:2648: recipe for target 
'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
{code}
I cloned the latest apache/arrow repo (to temp/arrow) to ensure this problem is 
not caused by my accidental mess-up to my local arrow repo.
 The latest commit of the temporary clone is:
{code:java}
Singularity> git log
commit 045fe1382349485e6eb2ce9466757efedf207c94 (HEAD -> master, origin/master, 
origin/HEAD)
{code}

> Compilation error when linking arrow-flight-perf-server
> ---
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Assignee: Antoine Pitrou
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.0.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** 

[jira] [Commented] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-24 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-8587:


Adding {{-DARROW_WITH_ZLIB=ON}} solved this problem.

(I was expecting that the build system could find zlib on my system 
automatically so I didn't set this flag.)

> Compilation error when linking arrow-flight-perf-server
> ---
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Assignee: Antoine Pitrou
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.0.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug 
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
>  I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
> output, but the Boost library that I installed from the package manger was of 
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?
> PS:
> I was able to build the benchmark 
> [before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with 
> the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very 
> similar to the one I'm using on my laptop.



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


[jira] [Reopened] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-24 Thread Chengxin Ma (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-8587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chengxin Ma reopened ARROW-8587:


> Compilation error when linking arrow-flight-perf-server
> ---
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Assignee: Antoine Pitrou
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.0.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug 
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
>  I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
> output, but the Boost library that I installed from the package manger was of 
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?
> PS:
> I was able to build the benchmark 
> [before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with 
> the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very 
> similar to the one I'm using on my laptop.



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


[jira] [Commented] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-24 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-8587:


Thanks for the quick fix.

Unfortunately I still see the following error messages:
{code}
[ 96%] Linking CXX executable ../../../release/arrow-flight-perf-server
../../../release/libarrow_flight.so.18.0.0: undefined reference to 
`inflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to 
`deflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
collect2: error: ld returned 1 exit status
src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:156: recipe 
for target 'release/arrow-flight-perf-server' failed
make[2]: *** [release/arrow-flight-perf-server] Error 1
CMakeFiles/Makefile2:2648: recipe for target 
'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
{code}

This seems to be a problem related to {{zlib}}. On my computer it is the latest 
version: {{zlib1g-dev is already the newest version (1:1.2.11.dfsg-0ubuntu2).}}

I guess this issue is still related to {{ThirdpartyToolchain.cmake}}?

> Compilation error when linking arrow-flight-perf-server
> ---
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Assignee: Antoine Pitrou
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.0.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug 
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
>  I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
> output, but the Boost library that I installed from the package manger was of 
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?

[jira] [Commented] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-24 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-8587:


Additional information: I still saw this error after rolling back the code base 
by: {{git checkout apache-arrow-0.17.0}}

> Compilation error when linking arrow-flight-perf-server
> ---
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: Benchmarking, C++, FlightRPC
>Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>Reporter: Chengxin Ma
>Priority: Minor
>
> I wanted to play around with Flight benchmark after seeing the discussion 
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest 
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::canonical(boost::filesystem::path const&, 
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to 
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: 
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target 
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug 
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
>  I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
> output, but the Boost library that I installed from the package manger was of 
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?
> PS:
> I was able to build the benchmark 
> [before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with 
> the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very 
> similar to the one I'm using on my laptop.



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


[jira] [Created] (ARROW-8587) Compilation error when linking arrow-flight-perf-server

2020-04-24 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-8587:
--

 Summary: Compilation error when linking arrow-flight-perf-server
 Key: ARROW-8587
 URL: https://issues.apache.org/jira/browse/ARROW-8587
 Project: Apache Arrow
  Issue Type: Bug
  Components: Benchmarking, C++, FlightRPC
Affects Versions: 1.0.0
 Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 
31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Reporter: Chengxin Ma


I wanted to play around with Flight benchmark after seeing the discussion 
regarding Flight's throughput in arrow dev mailing list today.

I met the following error when trying to build the benchmark from latest source 
code:
{code:java}
[ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::filesystem::detail::canonical(boost::filesystem::path const&, 
boost::filesystem::path const&, boost::system::error_code*)'
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::system::system_category()'
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::filesystem::path::parent_path() const'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::system::generic_category()'
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::filesystem::detail::current_path(boost::system::error_code*)'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateInit2_'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateInit2_'
../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to 
`boost::filesystem::path::operator/=(boost::filesystem::path const&)'
collect2: error: ld returned 1 exit status
src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154: recipe 
for target 'debug/arrow-flight-perf-server' failed
make[2]: *** [debug/arrow-flight-perf-server] Error 1
CMakeFiles/Makefile2:2609: recipe for target 
'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all] 
Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

{code}
I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug -DARROW_DEPENDENCY_SOURCE=AUTO 
-DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON 
-DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
 I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the 
output, but the Boost library that I installed from the package manger was of 
this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?

PS:
I was able to build the benchmark 
[before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with 
the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very 
similar to the one I'm using on my laptop.



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


[jira] [Created] (ARROW-7522) Broken Record Batch returned from a function call

2020-01-08 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-7522:
--

 Summary: Broken Record Batch returned from a function call
 Key: ARROW-7522
 URL: https://issues.apache.org/jira/browse/ARROW-7522
 Project: Apache Arrow
  Issue Type: Bug
  Components: C++, C++ - Plasma
Affects Versions: 0.15.1
 Environment: macOS
Reporter: Chengxin Ma


Scenario: retrieving Record Batch from Plasma with known Object ID.

The following code snippet works well:
{code:java}
int main(int argc, char **argv)
{
plasma::ObjectID object_id = 
plasma::ObjectID::from_binary("0FF1CE00C0FFEE00BEEF");

// Start up and connect a Plasma client.
plasma::PlasmaClient client;
ARROW_CHECK_OK(client.Connect("/tmp/store"));

plasma::ObjectBuffer object_buffer;
ARROW_CHECK_OK(client.Get(_id, 1, -1, _buffer));

// Retrieve object data.
auto buffer = object_buffer.data;

arrow::io::BufferReader buffer_reader(buffer); 
std::shared_ptr record_batch_stream_reader;
ARROW_CHECK_OK(arrow::ipc::RecordBatchStreamReader::Open(_reader, 
_batch_stream_reader));

std::shared_ptr record_batch;
arrow::Status status = record_batch_stream_reader->ReadNext(_batch);

std::cout << "record_batch->column_name(0): " << 
record_batch->column_name(0) << std::endl;
std::cout << "record_batch->num_columns(): " << record_batch->num_columns() 
<< std::endl;
std::cout << "record_batch->num_rows(): " << record_batch->num_rows() << 
std::endl;
std::cout << "record_batch->column(0)->length(): "
  << record_batch->column(0)->length() << std::endl;
std::cout << "record_batch->column(0)->ToString(): "
  << record_batch->column(0)->ToString() << std::endl;
}
{code}
{{record_batch->column(0)->ToString()}} would incur a segmentation fault if 
retrieving Record Batch is wrapped in a function:
{code:java}
std::shared_ptr GetRecordBatchFromPlasma(plasma::ObjectID 
object_id)
{
// Start up and connect a Plasma client.
plasma::PlasmaClient client;
ARROW_CHECK_OK(client.Connect("/tmp/store"));

plasma::ObjectBuffer object_buffer;
ARROW_CHECK_OK(client.Get(_id, 1, -1, _buffer));

// Retrieve object data.
auto buffer = object_buffer.data;

arrow::io::BufferReader buffer_reader(buffer);
std::shared_ptr record_batch_stream_reader;
ARROW_CHECK_OK(arrow::ipc::RecordBatchStreamReader::Open(_reader, 
_batch_stream_reader));

std::shared_ptr record_batch;
arrow::Status status = record_batch_stream_reader->ReadNext(_batch);

// Disconnect the client.
ARROW_CHECK_OK(client.Disconnect());

return record_batch;
}

int main(int argc, char **argv)
{
plasma::ObjectID object_id = 
plasma::ObjectID::from_binary("0FF1CE00C0FFEE00BEEF");

std::shared_ptr record_batch = 
GetRecordBatchFromPlasma(object_id);

std::cout << "record_batch->column_name(0): " << 
record_batch->column_name(0) << std::endl;
std::cout << "record_batch->num_columns(): " << record_batch->num_columns() 
<< std::endl;
std::cout << "record_batch->num_rows(): " << record_batch->num_rows() << 
std::endl;
std::cout << "record_batch->column(0)->length(): "
  << record_batch->column(0)->length() << std::endl;
std::cout << "record_batch->column(0)->ToString(): "
  << record_batch->column(0)->ToString() << std::endl;
}
{code}
The meta info of the Record Batch such as number of columns and rows is still 
available, but I can't see the content of the columns.

{{lldb}} says that the stop reason is {{EXC_BAD_ACCESS}}, so I think the Record 
Batch is destroyed after {{GetRecordBatchFromPlasma}} finishes. But why can I 
still see the meta info of this Record Batch?
 What is the proper way to get the Record Batch if we insist using a function?



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


[jira] [Closed] (ARROW-7434) [GLib] Homebrew packages seem not working

2019-12-18 Thread Chengxin Ma (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-7434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chengxin Ma closed ARROW-7434.
--
Resolution: Not A Bug

> [GLib] Homebrew packages seem not working
> -
>
> Key: ARROW-7434
> URL: https://issues.apache.org/jira/browse/ARROW-7434
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: GLib
>Affects Versions: 0.15.1
> Environment: macOS 10.15.2
>Reporter: Chengxin Ma
>Priority: Major
>
> After installing {{apache-arrow}} and {{apache-arrow-glib}} via {{Homebrew}} 
> according to the [Installation Guide|https://arrow.apache.org/install/], I 
> wrote a very simple program to test if they were successfully installed.
> {code}
> $ cat hello_world.c
> #include 
> #include 
> int main(int argc, char **argv) {
> printf("Hello, World! \n");
> }
> {code}
> {{gcc}} gave the following error:
> {code}
> $ gcc -o hello_world hello_world.c
> In file included from hello_world.c:3:
> In file included from /usr/local/include/arrow-glib/arrow-glib.h:22:
> /usr/local/include/arrow-glib/gobject-type.h:22:10: fatal error: 
> 'glib-object.h' file not found
> #include 
>  ^~~
> 1 error generated.
> {code}
> Is there any step that I didn’t follow here?



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


[jira] [Commented] (ARROW-7434) [GLib] Homebrew packages seem not working

2019-12-18 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7434:


Solution from the dev mailing list: {{gcc -o hello_world hello_world.c 
$(pkg-config --libs --cflags arrow-glib)}}

> [GLib] Homebrew packages seem not working
> -
>
> Key: ARROW-7434
> URL: https://issues.apache.org/jira/browse/ARROW-7434
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: GLib
>Affects Versions: 0.15.1
> Environment: macOS 10.15.2
>Reporter: Chengxin Ma
>Priority: Major
>
> After installing {{apache-arrow}} and {{apache-arrow-glib}} via {{Homebrew}} 
> according to the [Installation Guide|https://arrow.apache.org/install/], I 
> wrote a very simple program to test if they were successfully installed.
> {code}
> $ cat hello_world.c
> #include 
> #include 
> int main(int argc, char **argv) {
> printf("Hello, World! \n");
> }
> {code}
> {{gcc}} gave the following error:
> {code}
> $ gcc -o hello_world hello_world.c
> In file included from hello_world.c:3:
> In file included from /usr/local/include/arrow-glib/arrow-glib.h:22:
> /usr/local/include/arrow-glib/gobject-type.h:22:10: fatal error: 
> 'glib-object.h' file not found
> #include 
>  ^~~
> 1 error generated.
> {code}
> Is there any step that I didn’t follow here?



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


[jira] [Created] (ARROW-7434) [GLib] Homebrew packages seem not working

2019-12-18 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-7434:
--

 Summary: [GLib] Homebrew packages seem not working
 Key: ARROW-7434
 URL: https://issues.apache.org/jira/browse/ARROW-7434
 Project: Apache Arrow
  Issue Type: Bug
  Components: GLib
Affects Versions: 0.15.1
 Environment: macOS 10.15.2
Reporter: Chengxin Ma


After installing {{apache-arrow}} and {{apache-arrow-glib}} via {{Homebrew}} 
according to the [Installation Guide|https://arrow.apache.org/install/], I 
wrote a very simple program to test if they were successfully installed.

{code}
$ cat hello_world.c
#include 

#include 

int main(int argc, char **argv) {
printf("Hello, World! \n");
}
{code}

{{gcc}} gave the following error:

{code}
$ gcc -o hello_world hello_world.c
In file included from hello_world.c:3:
In file included from /usr/local/include/arrow-glib/arrow-glib.h:22:
/usr/local/include/arrow-glib/gobject-type.h:22:10: fatal error: 
'glib-object.h' file not found
#include 
 ^~~
1 error generated.
{code}

Is there any step that I didn’t follow here?




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


[jira] [Created] (ARROW-7411) [C++][Flight] Incorrect Arrow Flight benchmark output

2019-12-17 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-7411:
--

 Summary: [C++][Flight] Incorrect Arrow Flight benchmark output
 Key: ARROW-7411
 URL: https://issues.apache.org/jira/browse/ARROW-7411
 Project: Apache Arrow
  Issue Type: Improvement
  Components: Benchmarking, C++, FlightRPC
Affects Versions: 0.15.1
 Environment: macOS
Reporter: Chengxin Ma
Assignee: Chengxin Ma
 Fix For: 1.0.0


When running Arrow Flight benchmark in the following scenario, the output is 
incorrect. 
{code}
$ ./arrow-flight-perf-server &
[1] 12986
Server host: localhost
Server port: 31337
$ ./arrow-flight-benchmark -server_host localhost -test_put 
Using remote server: true
Testing method: DoPut
Server host: localhost
Server port: 31337
Bytes read: 128000
Nanos: 496372147
Speed: 2459.25 MB/s
{code}

{{Using remote server}} should be {{false}} and {{Bytes read}} should be 
{{Bytes write}}.

To correct the result of {{Using remote server}}, we can:

* Change {{if (FLAGS_server_host == "")}} to another condition which checks if 
there is already an {{arrow-flight-perf-server}} running. This is a bit 
complicated to do and might add some unnecessary complexity (e.g. we need to 
make sure it support all OSes.). 

* Delete {{Using remote server}}, since we already have {{Server host}} in the 
output.

I personally prefer the second option and will make a PR.



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


[jira] [Assigned] (ARROW-7320) [C++] Target arrow-type-benchmark failed to be built on bullx Linux

2019-12-04 Thread Chengxin Ma (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-7320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chengxin Ma reassigned ARROW-7320:
--

Assignee: Chengxin Ma

> [C++] Target arrow-type-benchmark failed to be built on bullx Linux
> ---
>
> Key: ARROW-7320
> URL: https://issues.apache.org/jira/browse/ARROW-7320
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: C++
>Affects Versions: 1.0.0
> Environment: bullx Linux
>Reporter: Chengxin Ma
>Assignee: Chengxin Ma
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> I was building Arrow on bullx Linux (a Linux distribution compatible with Red 
> Hat Enterprise Linux).
> CMake options:
> {code}
> -DCMAKE_BUILD_TYPE=Debug
> -DARROW_FLIGHT=ON
> -DARROW_BUILD_BENCHMARKS=ON
> {code}
> {{make}} failed with the following error message:
> {code}
> Scanning dependencies of target arrow-type-benchmark
> [ 72%] Building CXX object 
> src/arrow/CMakeFiles/arrow-type-benchmark.dir/type_benchmark.cc.o
> make[2]: *** No rule to make target 
> `gbenchmark_ep/src/gbenchmark_ep-install/lib/libbenchmark_main.a', needed by 
> `debug/arrow-type-benchmark'.  Stop.
> make[1]: *** [src/arrow/CMakeFiles/arrow-type-benchmark.dir/all] Error 2
> make: *** [all] Error 2
> {code}
> This is due to the same reason as mentioned in [this 
> commit|https://github.com/apache/arrow/pull/4246/commits/f6b0bc7f8dc56f02e2778752235e728b7623a9ee]:
> If {{-DCMAKE_INSTALL_LIBDIR=lib}} is not explicitly set, 
> {{libbenchmark_main.a}} will be put in {{lib64}} instead of {{lib}}.



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


[jira] [Created] (ARROW-7320) Target arrow-type-benchmark failed to be built on bullx Linux

2019-12-04 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-7320:
--

 Summary: Target arrow-type-benchmark failed to be built on bullx 
Linux
 Key: ARROW-7320
 URL: https://issues.apache.org/jira/browse/ARROW-7320
 Project: Apache Arrow
  Issue Type: Bug
  Components: C++
Affects Versions: 1.0.0
 Environment: bullx Linux
Reporter: Chengxin Ma


I was building Arrow on bullx Linux (a Linux distribution compatible with Red 
Hat Enterprise Linux).

CMake options:
{code}
-DCMAKE_BUILD_TYPE=Debug
-DARROW_FLIGHT=ON
-DARROW_BUILD_BENCHMARKS=ON
{code}

{{make}} failed with the following error message:
{code}
Scanning dependencies of target arrow-type-benchmark
[ 72%] Building CXX object 
src/arrow/CMakeFiles/arrow-type-benchmark.dir/type_benchmark.cc.o
make[2]: *** No rule to make target 
`gbenchmark_ep/src/gbenchmark_ep-install/lib/libbenchmark_main.a', needed by 
`debug/arrow-type-benchmark'.  Stop.
make[1]: *** [src/arrow/CMakeFiles/arrow-type-benchmark.dir/all] Error 2
make: *** [all] Error 2
{code}

This is due to the same reason as mentioned in [this 
commit|https://github.com/apache/arrow/pull/4246/commits/f6b0bc7f8dc56f02e2778752235e728b7623a9ee]:

If {{-DCMAKE_INSTALL_LIBDIR=lib}} is not explicitly set, 
{{libbenchmark_main.a}} will be put in {{lib64}} instead of {{lib}}.



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


[jira] [Updated] (ARROW-7320) [C++] Target arrow-type-benchmark failed to be built on bullx Linux

2019-12-04 Thread Chengxin Ma (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-7320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chengxin Ma updated ARROW-7320:
---
Summary: [C++] Target arrow-type-benchmark failed to be built on bullx 
Linux  (was: Target arrow-type-benchmark failed to be built on bullx Linux)

> [C++] Target arrow-type-benchmark failed to be built on bullx Linux
> ---
>
> Key: ARROW-7320
> URL: https://issues.apache.org/jira/browse/ARROW-7320
> Project: Apache Arrow
>  Issue Type: Bug
>  Components: C++
>Affects Versions: 1.0.0
> Environment: bullx Linux
>Reporter: Chengxin Ma
>Priority: Major
>
> I was building Arrow on bullx Linux (a Linux distribution compatible with Red 
> Hat Enterprise Linux).
> CMake options:
> {code}
> -DCMAKE_BUILD_TYPE=Debug
> -DARROW_FLIGHT=ON
> -DARROW_BUILD_BENCHMARKS=ON
> {code}
> {{make}} failed with the following error message:
> {code}
> Scanning dependencies of target arrow-type-benchmark
> [ 72%] Building CXX object 
> src/arrow/CMakeFiles/arrow-type-benchmark.dir/type_benchmark.cc.o
> make[2]: *** No rule to make target 
> `gbenchmark_ep/src/gbenchmark_ep-install/lib/libbenchmark_main.a', needed by 
> `debug/arrow-type-benchmark'.  Stop.
> make[1]: *** [src/arrow/CMakeFiles/arrow-type-benchmark.dir/all] Error 2
> make: *** [all] Error 2
> {code}
> This is due to the same reason as mentioned in [this 
> commit|https://github.com/apache/arrow/pull/4246/commits/f6b0bc7f8dc56f02e2778752235e728b7623a9ee]:
> If {{-DCMAKE_INSTALL_LIBDIR=lib}} is not explicitly set, 
> {{libbenchmark_main.a}} will be put in {{lib64}} instead of {{lib}}.



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


[jira] [Commented] (ARROW-7200) [C++][Flight] Running Arrow Flight benchmark on two hosts doesn't work

2019-11-23 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


I've attempted to do a fix here: 
[https://github.com/MaChengxin/arrow/commit/08ff56bacd87accb52adc2a20f1976acb320917e]

I'm not sure what the correct workflow is. Is it PR-then-code-review or the 
other way around?

Now in order to enable benchmarking on two hosts, we have to do:
Server side:
{code}
ubuntu@ip-172-31-11-18:~/arrow/cpp/for_flight/debug$ ./arrow-flight-perf-server 
-server_host 172.31.11.18
Server host: 172.31.11.18
Server port: 31337
{code}

Client side:
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ./arrow-flight-benchmark 
-server_host 172.31.11.18
Using remote server: true
Testing method: DoGet
Server host: 172.31.11.18
Server port: 31337
Bytes read: 128000
Nanos: 2080762694
Speed: 586.661 MB/s
{code}

If we don't specify the {{server_host}} flag on the server side, it will 
explicitly says it's serving locally:
{code}
ubuntu@ip-172-31-11-18:~/arrow/cpp/for_flight/debug$ ./arrow-flight-perf-server 
Server host: localhost
Server port: 31337
{code} 

> [C++][Flight] 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
> Fix For: 1.0.0
>
> 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)


[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-21 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


I did a quick fix on this issue: 
[https://github.com/MaChengxin/arrow/commit/01befee9ca8da0ae8f514e206665a3b2a411aa71?diff=split]

I'm not sure if this will introduce other problems, but it looks like it is 
working properly:
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ./arrow-flight-benchmark 
-server_host 172.31.11.18
Using remote server: true
Testing method: DoGet
Server host: 172.31.11.18
Server port: 31337
Bytes read: 128000
Nanos: 2113874359
Speed: 577.472 MB/s
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ./arrow-flight-benchmark 
-server_host 172.31.11.18 -test_put true
Using remote server: true
Testing method: DoPut
Server host: 172.31.11.18
Server port: 31337
Bytes read: 128000
Nanos: 2164233449
Speed: 564.035 MB/s
{code}

> 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)


[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-21 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


gRPC verbose logging shows:
{code:java}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ env GRPC_VERBOSITY=debug 
GRPC_TRACE=subchannel ./arrow-flight-benchmark -server_host 172.31.11.18
Using remote server: true
Testing method: DoGet
Server host: 172.31.11.18
Server port: 31337
...
I1121 09:28:58.051069998   14713 subchannel.cc:960]  Connect failed: 
{"created":"@1574328538.050990277","description":"Failed to connect to remote 
host: Connection 
refused","errno":111,"file":"src/core/lib/iomgr/tcp_client_posix.cc","file_line":207,"os_error":"Connection
 refused","syscall":"connect","target_address":"ipv6:[::1]:31337"}
I1121 09:28:58.051209019   14713 subchannel.cc:960]  Connect failed: 
{"created":"@1574328538.051185929","description":"Failed to connect to remote 
host: Connection 
refused","errno":111,"file":"src/core/lib/iomgr/tcp_client_posix.cc","file_line":207,"os_error":"Connection
 refused","syscall":"connect","target_address":"ipv4:127.0.0.1:31337"}
...

{code}
It seems that the client wanted to connect to the loopback address of the 
server, which would certainly fail.

The problem is perhaps in the {{RunPerformanceTest}} function of 
[flight_benchmark.cc|https://github.com/apache/arrow/blob/maint-0.15.x/cpp/src/arrow/flight/flight_benchmark.cc].

At [line 
209|https://github.com/apache/arrow/blob/maint-0.15.x/cpp/src/arrow/flight/flight_benchmark.cc#L209]
 the client will try to connect to the server again, but it will use 
{{localhost}} instead of the server's IP address:

If I add
{code:java}
for (const auto& location : endpoint.locations) {
  std::cout << location.ToString() << std::endl;
}
{code}
after [line 
233|https://github.com/apache/arrow/blob/maint-0.15.x/cpp/src/arrow/flight/flight_benchmark.cc#L233],
 and run the client again, it will show:
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ./arrow-flight-benchmark 
--server_host 172.31.11.18
Using remote server: true
Testing method: DoGet
Server host: 172.31.11.18
Server port: 31337
grpc+tcp://localhost:31337
grpc+tcp://localhost:31337
grpc+tcp://localhost:31337
grpc+tcp://localhost:31337
Failed with error: << IOError: gRPC returned unavailable error, with message: 
Connect Failed. Detail: Unavailable
{code}

> 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 

[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-20 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


[~apitrou], Thank you, I didn't know {{netstat}} and {{nc}} before. Thanks for 
letting me know.

[~lidavidm], I don't mind sharing the {{pem}} file for accessing the ad hoc AWS 
instances, if you think it is more handy for you to debug (if necessary).

> 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)


[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-20 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


I just tried:
{code}
ubuntu@ip-172-31-3-53:~$ nc -v 172.31.11.18 31337
Connection to 172.31.11.18 31337 port [tcp/*] succeeded!
@@ ^C
ubuntu@ip-172-31-3-53:~$ nc -v 172.31.11.18 22
Connection to 172.31.11.18 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
{code}

I have no idea about the returned {{@@}}.

> 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)


[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-20 Thread Chengxin Ma (Jira)


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

Chengxin Ma commented on ARROW-7200:


Yes, the two machines (hostnames: {{ip-172-31-11-18}} and {{ip-172-31-3-53}}) 
are in the same private network on AWS.
The output of {{/etc/hosts}} on {{ip-172-31-3-53}} is:
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ cat /etc/hosts
127.0.0.1 localhost
172.31.11.18 ip-172-31-11-18
{code}

I can ping {{ip-172-31-11-18}} from {{ip-172-31-3-53}}:
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ping ip-172-31-11-18
PING ip-172-31-11-18 (172.31.11.18) 56(84) bytes of data.
64 bytes from ip-172-31-11-18 (172.31.11.18): icmp_seq=1 ttl=64 time=0.163 ms
64 bytes from ip-172-31-11-18 (172.31.11.18): icmp_seq=2 ttl=64 time=0.178 ms
64 bytes from ip-172-31-11-18 (172.31.11.18): icmp_seq=3 ttl=64 time=0.167 ms
64 bytes from ip-172-31-11-18 (172.31.11.18): icmp_seq=4 ttl=64 time=0.175 ms
64 bytes from ip-172-31-11-18 (172.31.11.18): icmp_seq=5 ttl=64 time=0.168 ms
^C
--- ip-172-31-11-18 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4087ms
rtt min/avg/max/mdev = 0.163/0.170/0.178/0.009 ms
{code}
 I also tried to use the IP address directly as the command line argument 
instead of the hostname, but it still fails.
{code}
ubuntu@ip-172-31-3-53:~/arrow/cpp/for_flight/debug$ ./arrow-flight-benchmark 
-server_host 172.31.11.18
Using remote server: true
Testing method: DoGet
Server host: 172.31.11.18
Server port: 31337
Failed with error: << IOError: gRPC returned unavailable error, with message: 
Connect Failed. Detail: Unavailable
{code}

> 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)


[jira] [Commented] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-19 Thread Chengxin Ma (Jira)


[ 
https://issues.apache.org/jira/browse/ARROW-7200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[jira] [Updated] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-19 Thread Chengxin Ma (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-7200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chengxin Ma updated ARROW-7200:
---
Attachment: Screen Shot 2019-11-19 at 14.41.40.png

> 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)


[jira] [Created] (ARROW-7200) Running Arrow Flight benchmark on two hosts doesn't work

2019-11-18 Thread Chengxin Ma (Jira)
Chengxin Ma created ARROW-7200:
--

 Summary: 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.1, 0.15.0
 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
 Attachments: Screen Shot 2019-11-18 at 16.00.38.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)