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

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

     [ https://issues.apache.org/jira/browse/ARROW-12142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Antoine Pitrou reassigned ARROW-12142:
--------------------------------------

    Assignee: Antoine Pitrou

> [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: Documentation, Python
>    Affects Versions: 3.0.0
>         Environment:  ubuntu-20.04 in Github Actions CI
>            Reporter: Shane Harvey
>            Assignee: Antoine Pitrou
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 5.0.0
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> 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)