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