You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Shane Harvey (Jira)" <ji...@apache.org> on 2021/03/29 19:06:00 UTC

[jira] [Created] (ARROW-12142) [Python] undefined symbol: _ZN5arrow6StatusC1ENS_10StatusCodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

Shane Harvey created ARROW-12142:
------------------------------------

             Summary: [Python] undefined symbol: _ZN5arrow6StatusC1ENS_10StatusCodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
                 Key: ARROW-12142
                 URL: https://issues.apache.org/jira/browse/ARROW-12142
             Project: Apache Arrow
          Issue Type: Bug
          Components: Python
    Affects Versions: 3.0.0
         Environment:  ubuntu-20.04 in Github Actions CI
            Reporter: Shane Harvey


Using Ubuntu 20.04 in Github Actions CI to test a python extension that integrates with MongoDB and pyarrow, I get this error when attempting to import the Cython+pyarrow extension module:
{code:python}
ImportError: Failed to import test module: test_arrow
Traceback (most recent call last):
  File "/usr/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "/usr/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "/home/runner/work/mongo-arrow/mongo-arrow/bindings/python/test/test_arrow.py", line 21, in <module>
    from pymongoarrow.api import aggregate_arrow_all, find_arrow_all, Schema
  File "/home/runner/work/mongo-arrow/mongo-arrow/bindings/python/pymongoarrow/__init__.py", line 18, in <module>
    from pymongoarrow.lib import libbson_version
ImportError: /home/runner/work/mongo-arrow/mongo-arrow/bindings/python/pymongoarrow/lib.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN5arrow6StatusC1ENS_10StatusCodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
{code}

The task installs pyarrow 3.0 from the manylinux2014 wheel:
{code}
Collecting pyarrow>=3
  Downloading pyarrow-3.0.0-cp38-cp38-manylinux2014_x86_64.whl (20.7 MB)
{code}

The same project works fine locally on macOS (10.15) also using pyarrow 3.0 installed via pip. Upon googling I found this blog: https://uwekorn.com/2019/09/15/how-we-build-apache-arrows-manylinux-wheels.html

The article explains that the fix for {{"undefined symbol: _ZN5arrow6StatusC1ENS_10StatusCodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"}} is to add {{-D_GLIBCXX_USE_CXX11_ABI=0}} to CFLAGS which did work for me. However, the article says this is only needed for manylinux1 wheels because they build on an old platform. Is it expected that users still need to define this flag when using manylinux2014 wheels?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)