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

Wes McKinney commented on ARROW-2193:
-------------------------------------

For the record, here is the command line that's being generated for me

{code}
/usr/bin/clang++-5.0  -ggdb -O0  -Weverything -Wno-c++98-compat 
-Wno-c++98-compat-pedantic -Wno-deprecated -Wno-weak-vtables -Wno-padded 
-Wno-comma -Wno-unused-parameter -Wno-unused-template -Wno-undef -Wno-shadow 
-Wno-switch-enum -Wno-exit-time-destructors -Wno-global-constructors 
-Wno-weak-template-vtables -Wno-undefined-reinterpret-cast 
-Wno-implicit-fallthrough -Wno-unreachable-code-return -Wno-float-equal 
-Wno-missing-prototypes -Wno-old-style-cast -Wno-covered-switch-default 
-Wno-cast-align -Wno-vla-extension -Wno-shift-sign-overflow 
-Wno-used-but-marked-unused -Wno-missing-variable-declarations 
-Wno-gnu-zero-variadic-macro-arguments -Wconversion -Wno-sign-conversion 
-Wno-disabled-macro-expansion -Wno-gnu-folding-constant -Wno-reserved-id-macro 
-Wno-range-loop-analysis -Wno-double-promotion -Wno-undefined-func-template 
-Wno-zero-as-null-pointer-constant -Wno-unknown-warning-option -Werror 
-std=c++11 -msse3 -maltivec -Werror -Qunused-arguments  -D_XOPEN_SOURCE=500 
-D_POSIX_C_SOURCE=200809L -fPIC -g  -rdynamic 
src/plasma/CMakeFiles/plasma_store.dir/store.cc.o  -o debug/plasma_store  
-Wl,-rpath,/home/wesm/cpp-toolchain/lib: -lrt debug/libplasma.a 
debug/libarrow.a -lrt orc_ep-install/lib/liborc.a 
../thirdparty/protobuf_ep-install/lib/libprotobuf.a 
/home/wesm/cpp-toolchain/lib/libzstd.a /home/wesm/cpp-toolchain/lib/libz.a 
/home/wesm/cpp-toolchain/lib/libsnappy.a /home/wesm/cpp-toolchain/lib/liblz4.a 
/home/wesm/cpp-toolchain/lib/libbrotlidec.a 
/home/wesm/cpp-toolchain/lib/libbrotlienc.a 
/home/wesm/cpp-toolchain/lib/libbrotlicommon.a -lpthread 
/home/wesm/cpp-toolchain/lib/libboost_system.so 
/home/wesm/cpp-toolchain/lib/libboost_filesystem.so 
/home/wesm/cpp-toolchain/lib/libflatbuffers.a -lpthread && :
{code}

The linker problem isn't isolated to clang, here it is with gcc-4.9:

{code}
/usr/bin/g++-4.9  -ggdb -O0  -Wall -Wconversion -Wno-sign-conversion 
-Wno-unknown-warning-option -Werror -std=c++11 -msse3 -Werror 
-D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L -fPIC -g  -rdynamic 
src/plasma/CMakeFiles/plasma_store.dir/store.cc.o  -o debug/plasma_store  
-Wl,-rpath,/home/wesm/cpp-toolchain/lib: -lrt debug/libplasma.a 
debug/libarrow.a -lrt orc_ep-install/lib/liborc.a 
../thirdparty/protobuf_ep-install/lib/libprotobuf.a 
/home/wesm/cpp-toolchain/lib/libzstd.a /home/wesm/cpp-toolchain/lib/libz.a 
/home/wesm/cpp-toolchain/lib/libsnappy.a /home/wesm/cpp-toolchain/lib/liblz4.a 
/home/wesm/cpp-toolchain/lib/libbrotlidec.a 
/home/wesm/cpp-toolchain/lib/libbrotlienc.a 
/home/wesm/cpp-toolchain/lib/libbrotlicommon.a -lpthread 
/home/wesm/cpp-toolchain/lib/libboost_system.so 
/home/wesm/cpp-toolchain/lib/libboost_filesystem.so 
/home/wesm/cpp-toolchain/lib/libflatbuffers.a -lpthread && :
{code}

I guess because no Boost symbols are used that the binary produced by gcc does 
not have the runtime dependency on the .so files:

{code}
$ ldd debug/plasma_store 
        linux-vdso.so.1 =>  (0x00007ffd8390b000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007f9ab8354000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 
(0x00007f9ab8041000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9ab7d3b000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f9ab7b24000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9ab775b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9ab8572000)
{code}

But the Boost libraries shouldn't be passed to the linker at all

> [Plasma] plasma_store forks endlessly
> -------------------------------------
>
>                 Key: ARROW-2193
>                 URL: https://issues.apache.org/jira/browse/ARROW-2193
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Plasma (C++)
>            Reporter: Antoine Pitrou
>            Priority: Major
>             Fix For: 0.9.0
>
>
> I'm not sure why, but when I run the pyarrow test suite (for example 
> {{py.test pyarrow/tests/test_plasma.py}}), plasma_store forks endlessly:
> {code:bash}
>  $ ps fuwww
> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> [...]
> antoine  27869 12.0  0.4 863208 68976 pts/7    S    13:41   0:01 
> /home/antoine/miniconda3/envs/pyarrow/bin/python 
> /home/antoine/arrow/python/pyarrow/plasma_store -s /tmp/plasma_store40209423 
> -m 100000000
> antoine  27885 13.0  0.4 863076 68560 pts/7    S    13:41   0:01  \_ 
> /home/antoine/miniconda3/envs/pyarrow/bin/python 
> /home/antoine/arrow/python/pyarrow/plasma_store -s /tmp/plasma_store40209423 
> -m 100000000
> antoine  27901 12.1  0.4 863076 68320 pts/7    S    13:41   0:01      \_ 
> /home/antoine/miniconda3/envs/pyarrow/bin/python 
> /home/antoine/arrow/python/pyarrow/plasma_store -s /tmp/plasma_store40209423 
> -m 100000000
> antoine  27920 13.6  0.4 863208 68868 pts/7    S    13:41   0:01          \_ 
> /home/antoine/miniconda3/envs/pyarrow/bin/python 
> /home/antoine/arrow/python/pyarrow/plasma_store -s /tmp/plasma_store40209423 
> -m 100000000
> [etc.]
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to