Bug#920136: libgnutls30: symbol lookup error...undefined symbol: __gmpz_limbs_write

James Van Zandt jim.vanzandt at gmail.com
Tue Jan 22 02:18:11 GMT 2019


Package: libgnutls30
Version: 3.6.5-2
Severity: critical
Justification: breaks unrelated software

Dear Maintainer,


Sun 20 Jan 2019 10:25:49 PM EST

I upgraded several packages on Jan 16.  Since then, many programs
(including cupsd, apt-get, and apt) fail like this:

  /usr/lib/apt/methods/http: symbol lookup error:
/usr/lib/x86_64-linux-gnu/libgnutls.so.30: undefined symbol:
__gmpz_limbs_write

The file comes in this package:
  libgnutls30: /usr/lib/x86_64-linux-gnu/libgnutls.so.30

I have two copies of this package installed:
  jrv at home:/usr/local/src/octave/octave-4.4.1$ dpkg -l libgnutls30
  Desired=Unknown/Install/Remove/Purge/Hold
  |
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name              Version      Architecture Description

+++-=================-============-============-======================================
  ii  libgnutls30:amd64 3.6.5-2      amd64        GNU TLS library - main
runtime library
  ii  libgnutls30:i386  3.6.5-2      i386         GNU TLS library - main
runtime library

...corresponding to the two architectures installed here:

  jrv at home:~/Downloads$ dpkg --print-architecture
  amd64
  jrv at home:~/Downloads$ dpkg --print-foreign-architectures
  i386


I found a partial workaround, as follows:

I found libgnutls30 packages of version 3.5.19 in my backups.
Installing just the amd64 package (with dpkg) failed:
  package libgnutls30:amd64 3.5.19-1 cannot be configured because
libgnutls30:i386 is at a different version (3.6.5-2)

However, installing both architectures together succeeded:
  $ dpkg -l libgnutls30
  Desired=Unknown/Install/Remove/Purge/Hold
  |
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name              Version      Architecture Description

+++-=================-============-============-======================================
  ii  libgnutls30:amd64 3.5.19-1     amd64        GNU TLS library - main
runtime library
  ii  libgnutls30:i386  3.5.19-1     i386         GNU TLS library - main
runtime library

cupsd will now run (so I can print again).

apt-get also runs, but complains about versions being out of sync:

  $ sudo apt-get check
  [sudo] password for jrv:
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  You might want to run 'apt --fix-broken install' to correct these.
  The following packages have unmet dependencies:
   apt : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   exim4-daemon-light : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   glib-networking : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libavformat58 : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   libgnutls-dane0 : Depends: libgnutls30 (= 3.6.5-2) but 3.5.19-1 is
installed
   libgnutls-openssl27 : Depends: libgnutls30 (= 3.6.5-2) but 3.5.19-1 is
installed
   libgnutls28-dev : Depends: libgnutls30 (= 3.6.5-2) but 3.5.19-1 is
installed
   libgnutlsxx28 : Depends: libgnutls30 (= 3.6.5-2) but 3.5.19-1 is
installed
   libimobiledevice-utils : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libimobiledevice6 : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libldap-2.4-2 : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   libvirt-clients : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libvirt-daemon : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libvirt-daemon-system : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   libvirt0 : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   libvte-2.91-0 : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   python-pycurl : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   python3-pycurl : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is
installed
   qemu-utils : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   samba-libs : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   systemd : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
   wget : Depends: libgnutls30 (>= 3.6.5) but 3.5.19-1 is installed
  E: Unmet dependencies. Try 'apt --fix-broken install' with no packages
(or specify a solution).


I suspect a missing dependency, but I've not been able to identify it.
Evidently some libraries are out of sync, but I can't be sure which package
should be held responsible.  Since apt-get is affected, I think the problem
qualifies as "critical".


My attempts to track down the problem follow...

>From /var/log/history.log, those packages were upgraded on Jan 16:

  Start-Date: 2019-01-14  20:53:51
  Commandline: apt-get upgrade
  Requested-By: jrv (1000)
  Upgrade: ... libgnutls30:amd64 (3.5.19-1+b1, 3.6.5-2), libgnutls30:i386
(3.5.19-1+b1, 3.6.5-2) ...

The last three backups are more recent than that upgrade:

  drwxr-xr-x 14 root root 4096 Jan 20 23:02 snapshot.0
  drwxr-xr-x 14 root root 4096 Jan 18 23:01 snapshot.1
  drwxr-xr-x 14 root root 4096 Jan 13 23:00 snapshot.2
  drwxr-xr-x 14 root root 4096 Jan  3 23:02 snapshot.3
  drwxr-xr-x 14 root root 4096 Dec  4 22:59 snapshot.4
  drwxr-xr-x 15 root root 4096 Aug 24 22:58 snapshot.5

Searching for libraries that refer to that symbol:

  jrv at home:/usr/lib/x86_64-linux-gnu$ grep __gmpz_limbs_write
libgnutls.so.30

...so it's apparently not used or defined in version 3.5.19-1 of that file.
(It also wasn't mentioned in version 3.6.5-2 of the file.)

  jrv at home:/usr/lib/x86_64-linux-gnu$ grep __gmpz_limbs_write *.so*
  grep: libcasa_python3.so: No such file or directory
  Binary file libgmp.so matches
  Binary file libgmp.so.10 matches
  Binary file libgmp.so.10.3.2 matches
  grep: libgnutls.so: No such file or directory
  Binary file libhogweed.so matches
  Binary file libhogweed.so.4 matches
  Binary file libhogweed.so.4.5 matches

The installed versions of the packages with these libraries:

  $ dpkg -l libgmp-dev libhogweed4 nettle-dev
  Desired=Unknown/Install/Remove/Purge/Hold
  |
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
  |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
  ||/ Name             Version        Architecture Description

+++-================-==============-============-==================================================
  ii  libgmp-dev:amd64 2:6.1.2+dfsg-4 amd64        Multiprecision
arithmetic library developers tools
  ii  libhogweed4:amd64 3.4.1~rc1-1  amd64        low level cryptographic
library (public-key cryptos)
  ii  libhogweed4:i386  3.4.1~rc1-1  i386         low level cryptographic
library (public-key cryptos)
  ii  nettle-dev:amd64  3.4.1~rc1-1  amd64        low level cryptographic
library (development files)


I expect that upgrading the right combination of packages at once
would fix the system.  Any suggestions would ba welcome.  If I can
supply more information, let me know.

        - Jim Van Zandt



-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (700, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.18.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnutls-maint/attachments/20190121/3b0beec5/attachment.html>


More information about the Pkg-gnutls-maint mailing list