[ https://issues.apache.org/jira/browse/ARROW-12142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17310936#comment-17310936 ]
Shane Harvey commented on ARROW-12142: -------------------------------------- Thank you. Feel free to close this in that case. My only suggestion would be to add this error and the fix to an FAQ in the pyarrow documentation. > [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 > Priority: Major > > 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)