DescriptionLukas Slebodnik
2017-01-02 13:20:45 UTC
Description of problem:
The new function getentropy was added to glibc between releases glibc-2.24.90-22.fc26 and glibc-2.24.90-26.fc26.
It is awesome that you merge glibc master to rawhide very often
But new functions should not be added to version symbols between releases
because it breaks the standard workflow provided by version symbols.
As a result of this change I could not use dnf after upgrading
I could not use dnf after upgrading subset of packages in rawhide
e.g.
[root@f4dfe3d58f2e /]# rpm -q glibc system-python
glibc-2.24.90-22.fc26.x86_64
system-python-3.5.2-7.fc26.x86_64
[root@f4dfe3d58f2e /]# rpm -q --provides glibc | grep GLIBC_2.25
libc.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
[root@f4dfe3d58f2e /]# rpm -q --whatrequires "libc.so.6(GLIBC_2.25)(64bit)"
no package requires libc.so.6(GLIBC_2.25)(64bit)
[root@f4dfe3d58f2e /]# dnf update --setopt=debuglevel=1 -y system-python
Last metadata expiration check: 0:02:13 ago on Mon Jan 02 13:05:23 2017 UTC.
Dependencies resolved.
==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Upgrading:
dnf noarch 2.0.0-2.fc26 rawhide 260 k
dnf-conf noarch 2.0.0-2.fc26 rawhide 43 k
dnf-yum noarch 2.0.0-2.fc26 rawhide 25 k
libcomps x86_64 0.1.8-2.fc26 rawhide 76 k
libdnf x86_64 0.7.0-0.7gitf9b798c.fc26 rawhide 119 k
librepo x86_64 1.7.20-3.fc26 rawhide 74 k
python3 x86_64 3.6.0-1.fc26 rawhide 58 k
python3-dnf noarch 2.0.0-2.fc26 rawhide 411 k
python3-hawkey x86_64 0.7.0-0.7gitf9b798c.fc26 rawhide 49 k
python3-iniparse noarch 0.4-23.fc26 rawhide 46 k
python3-libcomps x86_64 0.1.8-2.fc26 rawhide 48 k
python3-librepo x86_64 1.7.20-3.fc26 rawhide 43 k
python3-libs x86_64 3.6.0-1.fc26 rawhide 1.4 M
python3-pip noarch 9.0.1-3.fc26 rawhide 1.7 M
python3-pygpgme x86_64 0.3-21.fc26 rawhide 91 k
python3-rpm x86_64 4.13.0-9.fc26 rawhide 105 k
python3-setuptools noarch 32.3.1-1.fc26 rawhide 568 k
python3-six noarch 1.10.0-6.fc26 rawhide 34 k
rpm x86_64 4.13.0-9.fc26 rawhide 517 k
rpm-build-libs x86_64 4.13.0-9.fc26 rawhide 121 k
rpm-libs x86_64 4.13.0-9.fc26 rawhide 303 k
rpm-plugin-selinux x86_64 4.13.0-9.fc26 rawhide 57 k
rpm-plugin-systemd-inhibit x86_64 4.13.0-9.fc26 rawhide 57 k
system-python x86_64 3.6.0-1.fc26 rawhide 51 k
system-python-libs x86_64 3.6.0-1.fc26 rawhide 6.3 M
Transaction Summary
==========================================================================================================
Upgrade 25 Packages
Total download size: 13 M
Downloading Packages:
----------------------------------------------------------------------------------------------------------
Total 483 kB/s | 13 MB 00:26
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Failed to connect to bus: No such file or directory
Failed to connect to bus: No such file or directory
Upgraded:
dnf.noarch 2.0.0-2.fc26 dnf-conf.noarch 2.0.0-2.fc26
dnf-yum.noarch 2.0.0-2.fc26 libcomps.x86_64 0.1.8-2.fc26
libdnf.x86_64 0.7.0-0.7gitf9b798c.fc26 librepo.x86_64 1.7.20-3.fc26
python3.x86_64 3.6.0-1.fc26 python3-dnf.noarch 2.0.0-2.fc26
python3-hawkey.x86_64 0.7.0-0.7gitf9b798c.fc26 python3-iniparse.noarch 0.4-23.fc26
python3-libcomps.x86_64 0.1.8-2.fc26 python3-librepo.x86_64 1.7.20-3.fc26
python3-libs.x86_64 3.6.0-1.fc26 python3-pip.noarch 9.0.1-3.fc26
python3-pygpgme.x86_64 0.3-21.fc26 python3-rpm.x86_64 4.13.0-9.fc26
python3-setuptools.noarch 32.3.1-1.fc26 python3-six.noarch 1.10.0-6.fc26
rpm.x86_64 4.13.0-9.fc26 rpm-build-libs.x86_64 4.13.0-9.fc26
rpm-libs.x86_64 4.13.0-9.fc26 rpm-plugin-selinux.x86_64 4.13.0-9.fc26
rpm-plugin-systemd-inhibit.x86_64 4.13.0-9.fc26 system-python.x86_64 3.6.0-1.fc26
system-python-libs.x86_64 3.6.0-1.fc26
Complete!
[root@f4dfe3d58f2e /]# rpm -q glibc system-python
glibc-2.24.90-22.fc26.x86_64
system-python-3.6.0-1.fc26.x86_64
[root@f4dfe3d58f2e /]# objdump -T /lib64/libpython3.6m.so.1.0 | grep getentropy
0000000000000000 DF *UND* 0000000000000000 GLIBC_2.25 getentropy
[root@f4dfe3d58f2e /]# objdump -T /lib64/libc.so.6 | grep getentropy
[root@f4dfe3d58f2e /]# dnf install lftp
/usr/libexec/system-python: relocation error: /lib64/libpython3.6m.so.1.0: symbol getentropy, version GLIBC_2.25 not defined in file libc.so.6 with link time reference
How reproducible:
Deterministic
Steps to Reproduce:
1. @see the steps above
//or
sh# rpm -q glibc
glibc-2.24.90-22.fc26.x86_64
sh# rpm -q --provides glibc | grep GLIBC_2.25
libc.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
sh# objdump -T /lib64/libc.so.6 | grep getentropy
sh# dnf update -y glibc
sh# rpm -q --provides glibc | grep GLIBC_2.25
libc.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
sh# objdump -T /lib64/libc.so.6 | grep getentropy
000000000003c6f0 g DF .text 000000000000008c GLIBC_2.25 getentropy
Actual results:
New symbols/functions are added to glibc in rawhide between minor releases
due to "Auto-sync with upstream master"
Expected results:
You might reconsider the work flow for merging glibc master into rawhide.
Additional info:
maybe there is some time schedule in glibc upstream which says that new symbols should not be added to master after some release (alpha, beta). It would help to eliminate such problems.
Another solution would be to automatically rebuild docker base image such change in glibc in rawhide. It would not fix the problem but t would reduce potential bugs.