Bug 1222343 - protobuf linking issue
Summary: protobuf linking issue
Status: NEW
: 1227463 (view as bug list)
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: Development (show other bugs)
Version: Leap 15.5
Hardware: x86-64 openSUSE Leap 15.5
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Marcus Meissner
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-04 22:07 UTC by Jonas Kvinge
Modified: 2024-07-16 12:31 UTC (History)
9 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonas Kvinge 2024-04-04 22:07:45 UTC
Recently, I'm getting several linking errors while building strawberry on leap.

Full log can be seen on https://build.opensuse.org/package/show/multimedia:apps/strawberry

This happened a few weeks ago, and it seem to be the same issue on both Leap 15.5 and 15.6, it is not an issue on Tumbleweed or any other linux distribution (Fedora, Debian and Ubuntu builds fine). I suspect an issue with the protobuf library on Leap.

From the build log:

[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/strawberry-tagreader.dir/tagreaderworker.cpp.o: in function `google::protobuf::internal::ArenaStringPtr::SetBytes(void const*, unsigned long, google::protobuf::Arena*)':
[   76s] /usr/include/google/protobuf/arenastring.h:495:(.text+0x44e): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadertaglib.cpp.o): in function `google::protobuf::internal::ArenaStringPtr::Set(char const*, unsigned long, google::protobuf::Arena*)':
[   76s] /usr/include/google/protobuf/arenastring.h:470:(.text+0x9935): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: /usr/include/google/protobuf/arenastring.h:470:(.text+0x9976): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(absl::lts_20240116::string_view, google::protobuf::Arena*)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::SongMetadata::GetMetadata() const':
[   76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:2565:(.text+0x1886): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::IsMediaFileRequest::GetMetadata() const':
[   76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:2769:(.text+0x18a6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::IsMediaFileResponse::GetMetadata() const':
[   76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3007:(.text+0x18c6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::ReadFileRequest::GetMetadata() const':
[   76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3211:(.text+0x18e6): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o): in function `spb::tagreader::ReadFileResponse::GetMetadata() const':
[   76s] /home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3463:(.text+0x1906): undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)'
[   76s] /usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../libstrawberry-tagreader/liblibstrawberry-tagreader.a(tagreadermessages.pb.cc.o):/home/abuild/rpmbuild/BUILD/strawberry-1.0.23/build/ext/libstrawberry-tagreader/tagreadermessages.pb.cc:3939: more undefined references to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20240116::once_flag*, google::protobuf::Metadata const&)' follow
[   76s] collect2: error: ld returned 1 exit status
Comment 1 Marcus Meissner 2024-04-05 07:10:44 UTC
we are working on a fix foor this.
Comment 2 Paolo Panto 2024-04-10 07:56:16 UTC
I get something similar for android-tools and Leap 15.6:

/usr/bin/ld: warning: libabsl_status.so.2308.0.0, needed by /usr/lib64/libprotobuf.so.25.1.0, may conflict with libabsl_status.so.2401.0.0

protobuf is linked against libabsl_status.so.2308.0.0, but the rest is linked against libabsl_status.so.2401.0.0

this leads to a build error:
https://build.opensuse.org/build/hardware/15.6/x86_64/android-tools/_log

Please let me know if you want me to open a separate bug.
Comment 3 Paolo Panto 2024-04-10 08:46:07 UTC
(In reply to Paolo Panto from comment #2)
> I get something similar for android-tools and Leap 15.6:
> 
> /usr/bin/ld: warning: libabsl_status.so.2308.0.0, needed by
> /usr/lib64/libprotobuf.so.25.1.0, may conflict with
> libabsl_status.so.2401.0.0
> 
> protobuf is linked against libabsl_status.so.2308.0.0, but the rest is
> linked against libabsl_status.so.2401.0.0
> 
> this leads to a build error:
> https://build.opensuse.org/build/hardware/15.6/x86_64/android-tools/_log
> 
> Please let me know if you want me to open a separate bug.

The same error for Leap 15.5, but in my home project with a current build (the last build for Leap 15.5 on hardware/android-tools is from Fri Mar 22 06:59:34 UTC 2024 - without error).

https://build.opensuse.org/package/live_build_log/home:munix9/android-tools/15.5/x86_64
https://build.opensuse.org/package/live_build_log/home:munix9/android-tools/15.6/x86_64
Comment 4 Bjar Ne 2024-04-19 06:46:12 UTC
We have the same issue. I tried to force an old version of abseil-cpp-devel in the spec file, but OBS could not resolve that:

Spec file:
...
%if 0%{?sle_version} == 150500 && 0%{?is_opensuse}
# on Leap 15.5, libprotobuf is linked against abseil 202308
BuildRequires: abseil-cpp-devel < 20240116
%endif
...

OBS says:
 unresolvable: nothing provides abseil-cpp-devel < 20240116, (got version 20240116.1-150500.13.3.5) 


this is our project which does not build on 15.5:

https://build.opensuse.org/package/show/science:EtherLab/DLS
Comment 5 Benjamin Greiner 2024-04-21 19:00:22 UTC
This might be related:

https://github.com/protocolbuffers/protobuf/issues/12292

Adding CONFIG to find_package(Protobuf ...) fixed building apache-arrow 16.0.0 for me (on Tumbleweed). Before that, I got similar errors on undefined absl references.
Comment 6 Jonas Kvinge 2024-04-21 20:27:00 UTC
It's not related. This is on Leap, not Tumbleweed. Already using find_package with CONFIG. Protobuf from devel:tools:building works.
Comment 7 Paolo Panto 2024-05-24 11:49:01 UTC
Any news on this topic?

As far as I could tell for the android-tools package, the current picture is as follows:

Repository                  Build
openSUSE:Leap:15.5          succeeded
openSUSE:Leap:15.5:Update   failed
openSUSE:Leap:15.6          succeeded
openSUSE:Leap:15.6:Update   succeeded
Comment 8 Maintenance Automation 2024-06-24 08:30:46 UTC
SUSE-RU-2024:2176-1: An update that has three fixes can now be installed.

Category: recommended (moderate)
Bug References: 1222261, 1222343, 1222348
Maintenance Incident: [SUSE:Maintenance:33199](https://smelt.suse.de/incident/33199/)
Sources used:
openSUSE Leap 15.5 (src):
 re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, abseil-cpp-20240116.1-150500.13.7.8, zypper-1.14.73-150500.6.2.1, python-grpcio-1.60.1-150500.12.3.16, libphonenumber-8.12.23-150500.6.2.1, libzypp-17.34.1-150500.6.2.1
SUSE Linux Enterprise High Performance Computing 15 SP5 (src):
 protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Server 15 SP5 (src):
 protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Server for SAP Applications 15 SP5 (src):
 protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Desktop 15 SP5 (src):
 protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Micro for Rancher 5.4 (src):
 abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Micro 5.4 (src):
 abseil-cpp-20240116.1-150500.13.7.8
SUSE Linux Enterprise Micro 5.5 (src):
 protobuf-25.1-150500.12.2.2, libzypp-17.34.1-150500.6.2.1, zypper-1.14.73-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
Basesystem Module 15-SP5 (src):
 zypper-1.14.73-150500.6.2.1, re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, libzypp-17.34.1-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
Development Tools Module 15-SP5 (src):
 protobuf-25.1-150500.12.2.2, abseil-cpp-20240116.1-150500.13.7.8
SUSE Package Hub 15 15-SP5 (src):
 protobuf-25.1-150500.12.2.2, libphonenumber-8.12.23-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8
Public Cloud Module 15-SP5 (src):
 re2-20240201-150500.12.2.1, protobuf-25.1-150500.12.2.2, grpc-1.60.0-150500.11.5.16, python-grpcio-1.60.1-150500.12.3.16
Python 3 Module 15-SP5 (src):
 protobuf-25.1-150500.12.2.2, python-grpcio-1.60.1-150500.12.3.16
SUSE Linux Enterprise Workstation Extension 15 SP5 (src):
 libphonenumber-8.12.23-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 9 Paolo Panto 2024-06-24 08:38:40 UTC
LGTM now, thanks!
Comment 10 Stefan Münkner 2024-07-04 13:41:53 UTC
since one of the last updates (last week) strawberry does not start anymore with the following error message: 

strawberry: symbol lookup error: strawberry: undefined symbol: _ZN6google8protobuf8internal17AssignDescriptorsEPFPKNS1_15DescriptorTableEvEPN4absl12lts_202308029once_flagERKNS0_8MetadataE

strawberry vers 1.0.23, release bp155.2.9.1

installed Di 02 Apr 2024 09:17:19 CEST. 

So it looks like it is one of the recently updated libprotobufs:

libprotobuf-lite25_1_0-25.1-150500.12.2.2.x86_64
libprotobuf25_1_0-25.1-150500.12.2.2.x86_64

Attempts to roll-back one the protobuf libs lead to a non-functioning zypper/yast with additional lookup errors. I could not nail down which one it was. Perhaps strawberry needs a re-compile?

Cheers 
  Stefan
Comment 11 hui 2024-07-06 13:49:51 UTC
*** Bug 1227463 has been marked as a duplicate of this bug. ***
Comment 12 Marcus Meissner 2024-07-07 11:15:41 UTC
i will get a rebuilt strawberry out
Comment 13 Maintenance Automation 2024-07-16 12:31:11 UTC
SUSE-RU-2024:2176-2: An update that has three fixes can now be installed.

Category: recommended (moderate)
Bug References: 1222261, 1222343, 1222348
Maintenance Incident: [SUSE:Maintenance:33199](https://smelt.suse.de/incident/33199/)
Sources used:
SUSE Linux Enterprise Micro 5.5 (src):
 libzypp-17.34.1-150500.6.2.1, protobuf-25.1-150500.12.2.2, zypper-1.14.73-150500.6.2.1, abseil-cpp-20240116.1-150500.13.7.8

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.