Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-1171

C++: Segmentation faults on Fedora 24 with pyarrow-manylinux1 and self-compiled turbodbc

    Details

    • Type: Bug
    • Status: In Progress
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 0.4.1
    • Fix Version/s: 0.8.0
    • Component/s: C++
    • Labels:
      None

      Description

      Original issue: https://github.com/blue-yonder/turbodbc/issues/102

      When using the pyarrow manylinux1 Wheels to build Turbodbc on Fedora 24, the turbodbc_arrow unittests segfault. The main environment attribute here is that the compiler version used for building Turbodbc is newer than the one used for Arrow.

        Activity

        Hide
        wesmckinn Wes McKinney added a comment -

        Seems like disabling the gcc5 ABI may be the solution?

        Show
        wesmckinn Wes McKinney added a comment - Seems like disabling the gcc5 ABI may be the solution?
        Hide
        xhochy Uwe L. Korn added a comment -

        No, we already disabled that. With enabled gcc5 ABI, it won't even link.

        Show
        xhochy Uwe L. Korn added a comment - No, we already disabled that. With enabled gcc5 ABI, it won't even link.
        Hide
        xhochy Uwe L. Korn added a comment -

        For reference, an import of this mixture (pyarrow-manylinux1 0.6.0 & turbodbc-self-compiled 2.2.0 on Fedora 24) fails with

        Thread 1 (Thread 0x7f927a5db700 (LWP 21)):
        #0  0x00007f9278df4110 in vtable for arrow::StringType () from /venv/lib/python2.7/site-packages/pyarrow/libarrow.so.0
        #1  0x00007f92789d2069 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() () from /venv/lib/python2.7/site-packages/pyarrow/libarrow.so.0
        #2  0x00007f92792cc948 in __run_exit_handlers (status=0, listp=0x7f92796505d8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
        #3  0x00007f92792cc995 in __GI_exit (status=<optimized out>) at exit.c:104
        #4  0x00007f92792b3738 in __libc_start_main (main=0x563816bf87b0 <main>, argc=3, argv=0x7ffc0b05e9f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
            stack_end=0x7ffc0b05e9e8) at ../csu/libc-start.c:323
        #5  0x0000563816bf87e9 in _start ()
        
        Show
        xhochy Uwe L. Korn added a comment - For reference, an import of this mixture (pyarrow-manylinux1 0.6.0 & turbodbc-self-compiled 2.2.0 on Fedora 24) fails with Thread 1 ( Thread 0x7f927a5db700 (LWP 21)): #0 0x00007f9278df4110 in vtable for arrow::StringType () from /venv/lib/python2.7/site-packages/pyarrow/libarrow.so.0 #1 0x00007f92789d2069 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() () from /venv/lib/python2.7/site-packages/pyarrow/libarrow.so.0 #2 0x00007f92792cc948 in __run_exit_handlers (status=0, listp=0x7f92796505d8 <__exit_funcs>, run_list_atexit=run_list_atexit@entry= true ) at exit.c:82 #3 0x00007f92792cc995 in __GI_exit (status=<optimized out>) at exit.c:104 #4 0x00007f92792b3738 in __libc_start_main (main=0x563816bf87b0 <main>, argc=3, argv=0x7ffc0b05e9f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc0b05e9e8) at ../csu/libc-start.c:323 #5 0x0000563816bf87e9 in _start ()
        Hide
        wesmckinn Wes McKinney added a comment -

        Is the self-compiling Fedora 24 user using devtoolset or stock gcc?

        Show
        wesmckinn Wes McKinney added a comment - Is the self-compiling Fedora 24 user using devtoolset or stock gcc?
        Hide
        xhochy Uwe L. Korn added a comment -

        Stock GCC, so there is a version mismatch. I learned a bit more about `-Bsymbolic` and its friends, giving this a shot to see if that fixes it.

        Show
        xhochy Uwe L. Korn added a comment - Stock GCC, so there is a version mismatch. I learned a bit more about `-Bsymbolic` and its friends, giving this a shot to see if that fixes it.
        Hide
        xhochy Uwe L. Korn added a comment -

        -DCMAKE_CXX_FLAGS='-Wl,-Bsymbolic -static-libstdc++' seems to solve the issue, marking this for the next release. I'll not do a direct PR but rather understand the effect a bit better.

        Show
        xhochy Uwe L. Korn added a comment - -DCMAKE_CXX_FLAGS='-Wl,-Bsymbolic -static-libstdc++'  seems to solve the issue, marking this for the next release. I'll not do a direct PR but rather understand the effect a bit better.

          People

          • Assignee:
            xhochy Uwe L. Korn
            Reporter:
            xhochy Uwe L. Korn
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development