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

[Python] Segfault when importing TensorFlow after Pyarrow

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.13.0
    • Fix Version/s: 0.14.0
    • Component/s: C++, Python
    • Labels:
      None

      Description

      This issue is similar to https://jira.apache.org/jira/browse/ARROW-2657 which was fixed in v0.10.0.

      When we import TensorFlow after Pyarrow in Linux Debian Jessie, we get a segfault.  To reproduce:

      import pyarrow 
      import tensorflow

      Here's the backtrace from gdb:

      Program terminated with signal SIGSEGV, Segmentation fault.
      #0 0x0000000000000000 in ?? ()
      (gdb) bt
      #0 0x0000000000000000 in ?? ()
      #1 0x00007f529ee04410 in pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:103
      #2 0x00007f5229a74efa in void std::call_once<void (&)()>(std::once_flag&, void (&)()) () from /usr/local/lib/python2.7/dist-packages/tensorflow/python/../libtensorflow_framework.so
      #3 0x00007f5229a74f3e in tensorflow::port::TestCPUFeature(tensorflow::port::CPUFeature) () from /usr/local/lib/python2.7/dist-packages/tensorflow/python/../libtensorflow_framework.so
      #4 0x00007f522978b561 in tensorflow::port::(anonymous namespace)::CheckFeatureOrDie(tensorflow::port::CPUFeature, std::string const&) ()
      from /usr/local/lib/python2.7/dist-packages/tensorflow/python/../libtensorflow_framework.so
      #5 0x00007f522978b5b4 in _GLOBAL__sub_I_cpu_feature_guard.cc () from /usr/local/lib/python2.7/dist-packages/tensorflow/python/../libtensorflow_framework.so
      #6 0x00007f529f224bea in call_init (l=<optimized out>, argc=argc@entry=9, argv=argv@entry=0x7ffc6d8c1488, env=env@entry=0x294c0c0) at dl-init.c:78
      #7 0x00007f529f224cd3 in call_init (env=0x294c0c0, argv=0x7ffc6d8c1488, argc=9, l=<optimized out>) at dl-init.c:36
      #8 _dl_init (main_map=main_map@entry=0x2e4aff0, argc=9, argv=0x7ffc6d8c1488, env=0x294c0c0) at dl-init.c:126
      #9 0x00007f529f228e38 in dl_open_worker (a=a@entry=0x7ffc6d8bebb8) at dl-open.c:577
      #10 0x00007f529f224aa4 in _dl_catch_error (objname=objname@entry=0x7ffc6d8beba8, errstring=errstring@entry=0x7ffc6d8bebb0, mallocedp=mallocedp@entry=0x7ffc6d8beba7,
      operate=operate@entry=0x7f529f228b60 <dl_open_worker>, args=args@entry=0x7ffc6d8bebb8) at dl-error.c:187
      #11 0x00007f529f22862b in _dl_open (file=0x7f5248178b54 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow_internal.so", mode=-2147483646, caller_dlopen=<optimized out>,
      nsid=-2, argc=9, argv=0x7ffc6d8c1488, env=0x294c0c0) at dl-open.c:661
      #12 0x00007f529ebf402b in dlopen_doit (a=a@entry=0x7ffc6d8bedd0) at dlopen.c:66
      #13 0x00007f529f224aa4 in _dl_catch_error (objname=0x2950fc0, errstring=0x2950fc8, mallocedp=0x2950fb8, operate=0x7f529ebf3fd0 <dlopen_doit>, args=0x7ffc6d8bedd0) at dl-error.c:187
      #14 0x00007f529ebf45dd in _dlerror_run (operate=operate@entry=0x7f529ebf3fd0 <dlopen_doit>, args=args@entry=0x7ffc6d8bedd0) at dlerror.c:163
      #15 0x00007f529ebf40c1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
      #16 0x0000000000540859 in _PyImport_GetDynLoadFunc ()
      #17 0x000000000054024c in _PyImport_LoadDynamicModule ()
      #18 0x00000000005f2bcb in ?? ()
      #19 0x00000000004ca235 in PyEval_EvalFrameEx ()
      #20 0x00000000004ca9c2 in PyEval_EvalFrameEx ()
      #21 0x00000000004c8c39 in PyEval_EvalCodeEx ()
      #22 0x00000000004c84e6 in PyEval_EvalCode ()
      #23 0x00000000004c6e5c in PyImport_ExecCodeModuleEx ()
      #24 0x00000000004c3272 in ?? ()
      #25 0x00000000004b19e2 in ?? ()
      #26 0x00000000004b13d7 in ?? ()
      #27 0x00000000004b42f6 in ?? ()
      #28 0x00000000004d1aab in PyEval_CallObjectWithKeywords ()
      #29 0x00000000004ccdb3 in PyEval_EvalFrameEx ()
      #30 0x00000000004c8c39 in PyEval_EvalCodeEx ()
      #31 0x00000000004c84e6 in PyEval_EvalCode ()
      #32 0x00000000004c6e5c in PyImport_ExecCodeModuleEx ()
      #33 0x00000000004c3272 in ?? ()
      #34 0x00000000004b1d3f in ?? ()
      #35 0x00000000004b6b2b in ?? ()
      #36 0x00000000004b0d82 in ?? ()
      #37 0x00000000004b42f6 in ?? ()
      #38 0x00000000004d1aab in PyEval_CallObjectWithKeywords ()
      #39 0x00000000004ccdb3 in PyEval_EvalFrameEx ()

      It looks like the code changes that fixed the previous issue was recently removed in https://github.com/apache/arrow/commit/b766bff34b7d85034d26cebef5b3aeef1eb2fd82#diff-16806bcebc1df2fae432db426905b9f0.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                asergeev Alexander Sergeev
                Reporter:
                tgaddair Travis Addair
              • Votes:
                1 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: