Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 2269811
Summary: | libarrow 15.0.1 seems to break ABI | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Orion Poplawski <orion> |
Component: | libarrow | Assignee: | Kaleb KEITHLEY <kkeithle> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | alekcejk, benson_muite, code, kkeithle, neil |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libarrow-15.0.2-2.fc41 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2024-03-20 13:14:19 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 2261766 |
Description
Orion Poplawski
2024-03-16 16:40:36 UTC
Looking just at the main library, it looks like upstream changed some string references to string_view without considering that this would break ABI: $ fedabipkgdiff --from fc40 libarrow-15.0.1-1.fc41.x86_64.rpm Comparing the ABI of binaries between libarrow-15.0.0-2.fc40.x86_64.rpm and libarrow-15.0.1-1.fc41.x86_64.rpm: ================ changes of 'libarrow.so.1500.0.0'=============== Functions changes summary: 6 Removed, 0 Changed (11 filtered out), 6 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 6 Removed functions: [D] 'method bool arrow::KeyValueMetadata::Contains(const std::string&) const' {_ZNK5arrow16KeyValueMetadata8ContainsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Status arrow::KeyValueMetadata::Delete(const std::string&)' {_ZN5arrow16KeyValueMetadata6DeleteERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method int arrow::KeyValueMetadata::FindKey(const std::string&) const' {_ZNK5arrow16KeyValueMetadata7FindKeyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > arrow::KeyValueMetadata::Get(const std::string&) const' {_ZNK5arrow16KeyValueMetadata3GetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE} [D] 'method arrow::Status arrow::KeyValueMetadata::Set(const std::string&, const std::string&)' {_ZN5arrow16KeyValueMetadata3SetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_} [D] 'function arrow::Status arrow::compute::internal::FSBFilterExec(arrow::compute::KernelContext*, const arrow::compute::ExecSpan&, arrow::compute::ExecResult*)' {_ZN5arrow7compute8internal13FSBFilterExecEPNS0_13KernelContextERKNS0_8ExecSpanEPNS0_10ExecResultE} 6 Added functions: [A] 'method bool arrow::KeyValueMetadata::Contains(std::string_view) const' {_ZNK5arrow16KeyValueMetadata8ContainsESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Status arrow::KeyValueMetadata::Delete(std::string_view)' {_ZN5arrow16KeyValueMetadata6DeleteESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method int arrow::KeyValueMetadata::FindKey(std::string_view) const' {_ZNK5arrow16KeyValueMetadata7FindKeyESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > arrow::KeyValueMetadata::Get(std::string_view) const' {_ZNK5arrow16KeyValueMetadata3GetB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE} [A] 'method arrow::Status arrow::KeyValueMetadata::Set(std::string, std::string)' {_ZN5arrow16KeyValueMetadata3SetENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_} [A] 'function arrow::Status arrow::compute::internal::PrimitiveTakeExec(arrow::compute::KernelContext*, const arrow::compute::ExecSpan&, arrow::compute::ExecResult*)' {_ZN5arrow7compute8internal17PrimitiveTakeExecEPNS0_13KernelContextERKNS0_8ExecSpanEPNS0_10ExecResultE} ================ end of changes of 'libarrow.so.1500.0.0'=============== Most or all of this is due to https://github.com/apache/arrow/commit/91be098b56021b1f9569986b038bd46c3ed53701. I went ahead and reported this upstream in https://github.com/apache/arrow/issues/40604. This is now affecting F40 due to the update to 15.0.2 in https://bodhi.fedoraproject.org/updates/FEDORA-2024-e075b0f5cf and the buildroot override https://bodhi.fedoraproject.org/overrides/libarrow-15.0.2-1.fc40. FEDORA-2024-ab6fe10b51 (libarrow-15.0.2-2.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2024-ab6fe10b51 FEDORA-2024-ab6fe10b51 (libarrow-15.0.2-2.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report. digikam build failed with libarrow 15.0.2-2.fc41 https://koji.fedoraproject.org/koji/taskinfo?taskID=115205076 /usr/bin/ld: /usr/lib64/libgdal.so.34: undefined reference to `arrow::KeyValueMetadata::Get[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >) const' /usr/bin/ld: /usr/lib64/libgdal.so.34: undefined reference to `arrow::KeyValueMetadata::Contains(std::basic_string_view<char, std::char_traits<char> >) const' collect2: error: ld returned 1 exit status gdal-3.8.4-4.fc41 rebuilt with libarrow 15.0.1-1.fc41 https://koji.fedoraproject.org/koji/buildinfo?buildID=2422900 Right, it looks like gdal was rebuilt due to the ABI break, and now needs to be re-rebuilt because reverting the ABI break is still an ABI break. There could be others. |