Skip to content

[C++] libarrow_flight symbol issue with pre-packaged Abseil >= 20240722.0 #48433

@WillAyd

Description

@WillAyd

Describe the bug, including details regarding any error messages, version, and platform.

When using abseil-cpp>=20240722.0, the following error message appears in failed CI builds for Python (similar jobs may also fail):

ImportError: The pyarrow installation is not built with support for 'flight' (/opt/conda/envs/arrow/lib/libarrow_flight.so.2300: undefined symbol: _ZN4absl12lts_202407225Mutex4DtorEv)

My assumption is that the preinstalled abseil-cpp conda package is installed as a "Release" set of libraries, whereas CI may have debug builds of the Arrow C++ library. At least dating back to abseil/abseil-cpp@f3760b4, there is a header from abseil_synchronization which defines a destructor only for debug builds, so when the Arrow C++ debug build includes this header but searches for the destructor in the release-built conda C++ package, the missing symbol issue rears its head

Strangely, the referenced patch also appears in the abseil 20240116.2 release that CI currently uses. I'm not sure what causes it to be more pronounced with a version upgrade

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions