Bug 1556888 - relocation error: /usr/sbin/dnsmasq: symbol nettle_get_hashes, version NETTLE_6
Summary: relocation error: /usr/sbin/dnsmasq: symbol nettle_get_hashes, version NETTLE_6
Keywords:
Status: CLOSED DUPLICATE of bug 1548060
Alias: None
Product: Fedora
Classification: Fedora
Component: dnsmasq
Version: 27
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Petr Menšík
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-03-15 12:49 UTC by Lukas Slebodnik
Modified: 2018-03-16 11:40 UTC (History)
11 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2018-03-15 15:00:03 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Lukas Slebodnik 2018-03-15 12:49:37 UTC
Description of problem:
libvirt uses dnsmasq by default and I noticed failures when starting dnsmasq.
There was a missing symbol from libnettle which is added in newer version of nettle. It would be good if you could add explicit requires to minimal version of nettle.

sh# journalctl -u libvirtd
-- Logs begin at Thu 2018-03-15 04:11:50 EDT, end at Thu 2018-03-15 08:12:36 EDT. --
Mar 15 04:17:05 host.example.com systemd[1]: Starting Virtualization daemon...
Mar 15 04:17:05 host.example.com systemd[1]: Started Virtualization daemon.
Mar 15 04:17:05 host.example.com libvirtd[7759]: 2018-03-15 08:17:05.770+0000: 7776: info : libvirt version: 3.7.0, package: 4.fc27 (Fedora Project, 2018-02-13-19:29:35, buildvm-27.phx2.fedoraproject.org)
Mar 15 04:17:05 host.example.com libvirtd[7759]: 2018-03-15 08:17:05.770+0000: 7776: info : hostname: host.example.com
Mar 15 04:17:05 host.example.com libvirtd[7759]: 2018-03-15 08:17:05.770+0000: 7776: error : virCommandWait:2583 : internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /usr/sbin/dnsmasq --version) unexpected exit status 127: /usr/sbin/dnsmasq: relocation error: /usr/sbin/dnsmasq: symbol nettle_get_hashes, version NETTLE_6 not defined in file libnettle.so.6 with link time reference
Mar 15 04:17:05 host.example.com libvirtd[7759]: 2018-03-15 08:17:05.770+0000: 7776: error : dnsmasqCapsRefreshInternal:764 : failed to run '/usr/sbin/dnsmasq --version': : Success


Version-Release number of selected component (if applicable):
sh$ rpm -q nettle dnsmasq
nettle-3.3-5.fc27.x86_64
dnsmasq-2.78-6.fc27.x86_64

How reproducible:
Deterministic

Steps to Reproduce:
1. dnf install -y dnsmasq binutils
2. nm --dynamic --undefined-only /usr/sbin/dnsmasq | grep nettle_get_hashes
3. nm --dynamic --defined-only /usr/lib64/libnettle.so.6 | grep nettle_get_hashes
4. echo $?

Actual results:
sh-4.4# nm --dynamic --undefined-only /usr/sbin/dnsmasq | grep nettle_get_hashes
                 U nettle_get_hashes
sh-4.4# nm --dynamic --defined-only /usr/lib64/libnettle.so.6 | grep nettle_get_hashes
sh-4.4# echo $?
1


Expected results:
sh-4.4# nm --dynamic --undefined-only /usr/sbin/dnsmasq | grep nettle_get_hashes
                 U nettle_get_hashes
sh-4.4# nm --dynamic --defined-only /usr/lib64/libnettle.so.6 | grep nettle_get_hashes
0000000000018460 T nettle_get_hashes

Additional info:
It works well with nettle from updates-testing

sh-4.4# dnf update -e0 -d0 -y --enablerepo=updates-testing nettle
install-info: No such file or directory for /usr/share/info/nettle.info
sh-4.4# rpm -q nettle dnsmasq
nettle-3.4-1.fc27.x86_64
dnsmasq-2.78-6.fc27.x86_64
sh-4.4# nm --dynamic --undefined-only /usr/sbin/dnsmasq | grep nettle_get_hashes
                 U nettle_get_hashes
sh-4.4# nm --dynamic --defined-only /usr/lib64/libnettle.so.6 | grep nettle_get_hashes
0000000000018460 T nettle_get_hashes

Comment 1 Lukas Slebodnik 2018-03-15 14:03:54 UTC
Note: It is not required to enable updates-testing for installing nettle-3.4-1.fc27.x86_64. It is already in updates for quite a log. The issue is that Vm needn't be updated and installing dnsmasq will not update nettle due to missing requirement on new version.

Comment 2 Petr Menšík 2018-03-15 14:31:37 UTC
I think main problem here is that nettle changes its API, but did not change its soversion. This recompilation should be with different soversion, making automatic dependencies handle this problem. Dnsmasq does not have explicit dependency on nettle, I had no place to add version. I filled bug #1549190 for it.

But since it is already broken, I will add version dependency on it. I did not realize selective updates can be broken by it.

Comment 3 Petr Menšík 2018-03-15 15:00:03 UTC
I think this is exactly the same issue as bug #1548060, closing it as duplicate.

*** This bug has been marked as a duplicate of bug 1548060 ***


Note You need to log in before you can comment on or make changes to this bug.