[ https://issues.apache.org/jira/browse/ARROW-13085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated ARROW-13085: ----------------------------------- Labels: pull-request-available (was: ) > Apache Arrow minimal cpp build segfaults with pyarrow libs > ---------------------------------------------------------- > > Key: ARROW-13085 > URL: https://issues.apache.org/jira/browse/ARROW-13085 > Project: Apache Arrow > Issue Type: Bug > Components: C++, Python > Affects Versions: 4.0.1 > Environment: See dockerfile: > https://github.com/kratsg/awkward-arrow-cmake-pybind11/blob/0e196983b2452c4c3dbbde40984db7031397d0a7/Dockerfile > Reporter: Giordon Stark > Priority: Major > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > h6. _Refer to > [https://github.com/kratsg/awkward-arrow-cmake-pybind11/issues/6#issuecomment-861592692] > and code-base available here: > [https://github.com/kratsg/awkward-arrow-cmake-pybind11/tree/0e196983b2452c4c3dbbde40984db7031397d0a7]_ > The minimal build example provided by arrow > ([https://github.com/apache/arrow/blob/master/cpp/examples/minimal_build/example.cc] > > [)|https://github.com/apache/arrow/blob/master/cpp/examples/minimal_build/example.cc] > works fine using the libs shipped with {{yum}} on CentOS7. Using the libs > shipped by {{pip install pyarrow}} instead provides a segfault at runtime. > Here is the gdb dump with debugging flags included > {code:java} > [root@dab7bb04d93f examples]# gdb ./../build/example_arrow > GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 > Copyright (C) 2013 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from > /Users/kratsg/awkward-arrow-cmake-pybind11/build/example_arrow...done. > (gdb) run > Starting program: > /Users/kratsg/awkward-arrow-cmake-pybind11/examples/./../build/example_arrow > warning: Error disabling address space randomization: Operation not permitted > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib64/libthread_db.so.1". > [New Thread 0x7f9c58dff700 (LWP 1643)] > * Reading CSV file 'test.csv' into table > Program received signal SIGSEGV, Segmentation fault. > __destroy<std::basic_string<char>*> (__last=<optimized out>, > __first=0x3200000000) at /usr/include/c++/4.8.2/bits/stl_construct.h:103 > 103 std::_Destroy(std::__addressof(*__first)); > Missing separate debuginfos, use: debuginfo-install > glibc-2.17-324.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 > libstdc++-4.8.5-44.el7.x86_64 > (gdb) bt > #0 __destroy<std::basic_string<char>*> (__last=<optimized out>, > __first=0x3200000000) at /usr/include/c++/4.8.2/bits/stl_construct.h:103 > #1 _Destroy<std::basic_string<char>*> (__last=<optimized out>, > __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:126 > #2 _Destroy<std::basic_string<char>*, std::basic_string<char> > (__last=0x0, > __first=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_construct.h:151 > #3 ~vector (this=0x7ffff43602a8, __in_chrg=<optimized out>) at > /usr/include/c++/4.8.2/bits/stl_vector.h:415 > #4 arrow::csv::ConvertOptions::~ConvertOptions (this=0x7ffff4360220, > __in_chrg=<optimized out>) > at > /usr/local/venv/lib/python3.8/site-packages/pyarrow/include/arrow/csv/options.h:64 > #5 0x000000000040171a in (anonymous namespace)::RunMain (argv=<optimized > out>, argc=<optimized out>, this=<optimized out>, this=<optimized out>) > at /Users/kratsg/awkward-arrow-cmake-pybind11/src/example/arrow.cpp:39 > #6 0x000000000040135f in main (argc=<optimized out>, argv=<optimized out>) > at /Users/kratsg/awkward-arrow-cmake-pybind11/src/example/arrow.cpp:66 {code} > Below is the full CMake log + build log > {code:java} > # ./build.sh > -- The CXX compiler identification is GNU 4.8.5 > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Check for working CXX compiler: /usr/bin/c++ - skipped > -- Detecting CXX compile features > -- Detecting CXX compile features - done > -- pybind11 v2.6.2 > -- Found PythonInterp: /usr/local/bin/python3.8 (found version "3.8.10") > -- Found PythonLibs: /usr/local/lib/libpython3.8.so > -- Performing Test HAS_FLTO > -- Performing Test HAS_FLTO - Success > -- PyArrow includes : > /usr/local/venv/lib/python3.8/site-packages/pyarrow/include > -- PyArrow libraries : arrow;arrow_python > -- PyArrow library dirs : /usr/local/venv/lib/python3.8/site-packages/pyarrow > -- Awkward includes : > /usr/local/venv/lib/python3.8/site-packages/awkward/include > -- Awkward libraries: /usr/local/venv/lib/python3.8/site-packages/awkward > -- Libraries: > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward-cpu-kernels.so > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward.so > /usr/lib64/libdl.so > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow.so > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow_python.so > -- Configuring done > -- Generating done > -- Build files have been written to: > /Users/kratsg/awkward-arrow-cmake-pybind11/build > -- pybind11 v2.6.2 > -- PyArrow includes : > /usr/local/venv/lib/python3.8/site-packages/pyarrow/include > -- PyArrow libraries : arrow;arrow_python > -- PyArrow library dirs : /usr/local/venv/lib/python3.8/site-packages/pyarrow > -- Awkward includes : > /usr/local/venv/lib/python3.8/site-packages/awkward/include > -- Awkward libraries: /usr/local/venv/lib/python3.8/site-packages/awkward > -- Libraries: > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward-cpu-kernels.so > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward.so > /usr/lib64/libdl.so > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow.so > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow_python.so > -- Configuring done > -- Generating done > -- Build files have been written to: > /Users/kratsg/awkward-arrow-cmake-pybind11/build > -- Cache values > CMAKE_BUILD_TYPE:STRING=RelWithDebInfo > CMAKE_INSTALL_PREFIX:PATH=/usr/local > CPU-KERNELS:FILEPATH=/usr/local/venv/lib/python3.8/site-packages/awkward/libawkward-cpu-kernels.so > LIBARROW:FILEPATH=/usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow.so > LIBARROW_PYTHON:FILEPATH=/usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow_python.so > LIBAWKWARD:FILEPATH=/usr/local/venv/lib/python3.8/site-packages/awkward/libawkward.so > LIBDL:FILEPATH=/usr/lib64/libdl.so > PYBIND11_FINDPYTHON:BOOL=OFF > PYBIND11_INSTALL:BOOL=OFF > PYBIND11_NOPYTHON:BOOL=OFF > PYBIND11_PYTHON_VERSION:STRING= > PYBIND11_TEST:BOOL=OFF > ################################################################### > ######################### BUILD LOG BELOW ######################### > ################################################################### > /usr/local/bin/cmake -S/Users/kratsg/awkward-arrow-cmake-pybind11/src > -B/Users/kratsg/awkward-arrow-cmake-pybind11/build --check-build-system > CMakeFiles/Makefile.cmake 0 > /usr/local/bin/cmake -E cmake_progress_start > /Users/kratsg/awkward-arrow-cmake-pybind11/build/CMakeFiles > /Users/kratsg/awkward-arrow-cmake-pybind11/build//CMakeFiles/progress.marks > /usr/bin/gmake -f CMakeFiles/Makefile2 all > gmake[1]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > /usr/bin/gmake -f CMakeFiles/babel.dir/build.make CMakeFiles/babel.dir/depend > /usr/bin/gmake -f CMakeFiles/example_arrow.dir/build.make > CMakeFiles/example_arrow.dir/depend > /usr/bin/gmake -f CMakeFiles/example.dir/build.make > CMakeFiles/example.dir/depend > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > cd /Users/kratsg/awkward-arrow-cmake-pybind11/build && /usr/local/bin/cmake > -E cmake_depends "Unix Makefiles" > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build/CMakeFiles/babel.dir/DependInfo.cmake > --color= > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > cd /Users/kratsg/awkward-arrow-cmake-pybind11/build && /usr/local/bin/cmake > -E cmake_depends "Unix Makefiles" > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build/CMakeFiles/example_arrow.dir/DependInfo.cmake > --color= > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > cd /Users/kratsg/awkward-arrow-cmake-pybind11/build && /usr/local/bin/cmake > -E cmake_depends "Unix Makefiles" > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/src > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build > /Users/kratsg/awkward-arrow-cmake-pybind11/build/CMakeFiles/example.dir/DependInfo.cmake > --color= > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > /usr/bin/gmake -f CMakeFiles/example.dir/build.make > CMakeFiles/example.dir/build > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > /usr/bin/gmake -f CMakeFiles/babel.dir/build.make CMakeFiles/babel.dir/build > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > /usr/bin/gmake -f CMakeFiles/example_arrow.dir/build.make > CMakeFiles/example_arrow.dir/build > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > gmake[2]: Entering directory > `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > [ 14%] Building CXX object CMakeFiles/example.dir/example/python.cpp.o > /usr/bin/c++ -Dexample_EXPORTS -isystem > /Users/kratsg/awkward-arrow-cmake-pybind11/src/pybind11/include -isystem > /usr/local/venv/lib/python3.8/site-packages/awkward/include -O2 -g -DNDEBUG > -fPIC -fvisibility=hidden -std=gnu++11 -MD -MT > CMakeFiles/example.dir/example/python.cpp.o -MF > CMakeFiles/example.dir/example/python.cpp.o.d -o > CMakeFiles/example.dir/example/python.cpp.o -c > /Users/kratsg/awkward-arrow-cmake-pybind11/src/example/python.cpp > [ 28%] Building CXX object CMakeFiles/babel.dir/babel/python.cpp.o > /usr/bin/c++ -Dbabel_EXPORTS -isystem > /Users/kratsg/awkward-arrow-cmake-pybind11/src/pybind11/include -isystem > /usr/local/venv/lib/python3.8/site-packages/pyarrow/include -isystem > /usr/local/venv/lib/python3.8/site-packages/awkward/include -O2 -g -DNDEBUG > -fPIC -fvisibility=hidden -std=gnu++11 -MD -MT > CMakeFiles/babel.dir/babel/python.cpp.o -MF > CMakeFiles/babel.dir/babel/python.cpp.o.d -o > CMakeFiles/babel.dir/babel/python.cpp.o -c > /Users/kratsg/awkward-arrow-cmake-pybind11/src/babel/python.cpp > [ 42%] Building CXX object CMakeFiles/example_arrow.dir/example/arrow.cpp.o > /usr/bin/c++ -isystem > /usr/local/venv/lib/python3.8/site-packages/pyarrow/include -O2 -g -DNDEBUG > -std=gnu++11 -MD -MT CMakeFiles/example_arrow.dir/example/arrow.cpp.o -MF > CMakeFiles/example_arrow.dir/example/arrow.cpp.o.d -o > CMakeFiles/example_arrow.dir/example/arrow.cpp.o -c > /Users/kratsg/awkward-arrow-cmake-pybind11/src/example/arrow.cpp > [ 57%] Linking CXX executable example_arrow > /usr/local/bin/cmake -E cmake_link_script > CMakeFiles/example_arrow.dir/link.txt --verbose=1 > /usr/bin/c++ -O2 -g -DNDEBUG CMakeFiles/example_arrow.dir/example/arrow.cpp.o > -o example_arrow > -Wl,-rpath,/usr/local/venv/lib/python3.8/site-packages/pyarrow > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow.so > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > [ 57%] Built target example_arrow > [ 71%] Building CXX object CMakeFiles/example.dir/example/minimal.cpp.o > /usr/bin/c++ -Dexample_EXPORTS -isystem > /Users/kratsg/awkward-arrow-cmake-pybind11/src/pybind11/include -isystem > /usr/local/venv/lib/python3.8/site-packages/awkward/include -O2 -g -DNDEBUG > -fPIC -fvisibility=hidden -std=gnu++11 -MD -MT > CMakeFiles/example.dir/example/minimal.cpp.o -MF > CMakeFiles/example.dir/example/minimal.cpp.o.d -o > CMakeFiles/example.dir/example/minimal.cpp.o -c > /Users/kratsg/awkward-arrow-cmake-pybind11/src/example/minimal.cpp > [ 85%] Linking CXX shared module example.cpython-38-x86_64-linux-gnu.so > /usr/local/bin/cmake -E cmake_link_script CMakeFiles/example.dir/link.txt > --verbose=1 > /usr/bin/c++ -fPIC -O2 -g -DNDEBUG -shared -o > example.cpython-38-x86_64-linux-gnu.so > CMakeFiles/example.dir/example/python.cpp.o > CMakeFiles/example.dir/example/minimal.cpp.o > -Wl,-rpath,/usr/local/venv/lib/python3.8/site-packages/awkward > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward-cpu-kernels.so > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward.so > /usr/lib64/libdl.so > [100%] Linking CXX shared module babel.cpython-38-x86_64-linux-gnu.so > /usr/local/bin/cmake -E cmake_link_script CMakeFiles/babel.dir/link.txt > --verbose=1 > /usr/bin/c++ -fPIC -O2 -g -DNDEBUG -shared -o > babel.cpython-38-x86_64-linux-gnu.so CMakeFiles/babel.dir/babel/python.cpp.o > -Wl,-rpath,/usr/local/venv/lib/python3.8/site-packages/pyarrow:/usr/local/venv/lib/python3.8/site-packages/awkward > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow.so > /usr/local/venv/lib/python3.8/site-packages/pyarrow/libarrow_python.so > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward-cpu-kernels.so > /usr/local/venv/lib/python3.8/site-packages/awkward/libawkward.so > /usr/lib64/libdl.so > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > [100%] Built target example > gmake[2]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > [100%] Built target babel > gmake[1]: Leaving directory `/Users/kratsg/awkward-arrow-cmake-pybind11/build' > /usr/local/bin/cmake -E cmake_progress_start > /Users/kratsg/awkward-arrow-cmake-pybind11/build/CMakeFiles 0 {code} > One can reproduce this by cloning the corresponding repository recursively, > then building the docker image, compiling the code, and then running it > {code:java} > git clone --recursive g...@github.com:kratsg/awkward-arrow-cmake-pybind11.git > make build-image-debug > make debug # launches docker image > > ./build.sh > > ./run_example.sh{code} > where {{>}} denotes commands run inside the docker image. -- This message was sent by Atlassian Jira (v8.3.4#803005)