[Bug 1387594] Re: init: symbol lookup error: /lib/powerpc64le-linux-gnu/libnss_ldap.so.2: undefined symbol: __libc_lock_lock
Louis Bouchard
louis.bouchard at canonical.com
Tue Dec 9 15:45:33 UTC 2014
** Description changed:
[SRU justification]
The version of the library in the archive for Utopic and Trusty has been built prior to a change in glibc that removes an expected symbol. Rebuild of the libnss-ldap library with the current source package will render the library unusable and may cause systems to become unbootable.
[Impact]
Without this fix, a rebuild of the libnss-ldap package will cause grave impact where usage of the libnss-ldap will segfault. Such a segfault during the boot process will cause the system to become unbootable.
[Fix]
Backport the glibc-2.16.patch that is now merged in Vivid into Utopic and Trusty. The version of the library in Precise already uses the correct glibc symbol.
[Test Case]
+ On a server properly configured for ldap authentication :
+
+ root at trusty-ldapclient:~# getent passwd john
+ john:x:10000:5000:John Doe:/home/john:/bin/bash
+
+ The same test on arm64 or ppc64el platform where the libnss-ldap have
+ been rebuilt recently you will get :
+
+ root at trusty-ldapclient:~# getent passwd john
+ Segmentation fault (core dumped)
+
$ sudo apt-get download libnss-ldap
$ mkdir tmp
$ dpkg -x libnss-ldap_264-2.2ubuntu4_amd64.deb tmp
$ nm -D tmp/lib/x86_64-linux-gnu/libnss_ldap-2.15.so |grep lock$
- w __pthread_mutex_lock
- w __pthread_mutex_unlock
+ w __pthread_mutex_lock
+ w __pthread_mutex_unlock
#Rebuild the library
$ pull-lp-source libnss-ldap trusty
$ sbuild -A -d trusty libnss-ldap_264-2.2ubuntu4.dsc
$ rm -Rf tmp/*
$ dpkg -x libnss-ldap_264-2.2ubuntu4_amd64.deb tmp
$ nm -D tmp/lib/x86_64-linux-gnu/libnss_ldap-2.19.so | grep lock$
- U __libc_lock_lock
- U __libc_lock_unlock
+ U __libc_lock_lock
+ U __libc_lock_unlock
Notice that the libnss-ldap version change (2.15 -> 2.19). With the
newly built version, the expected _pthread_mutex_lock|unlock is no
longer present.
[Regression]
None expected. This is already present and in use in the upstream version of the library.
[Original Description of the problem]
Unlike previously thought, this bug is _NOT_ specific to the PPC64EL
architecture. More details in the analysis.
Many commands that require the use of libnss-ldap will fail with
Segmentation Fault. The boot procedure itself can be blocked with the
following message.
One potential workaround is to remove the use of ldap from the
/etc/nsswitch.conf file to at least provide a bootable system.
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1387594
Title:
init: symbol lookup error: /lib/powerpc64le-linux-
gnu/libnss_ldap.so.2: undefined symbol: __libc_lock_lock
Status in libnss-ldap package in Ubuntu:
Fix Released
Status in libnss-ldap source package in Precise:
Invalid
Status in libnss-ldap source package in Trusty:
In Progress
Status in libnss-ldap source package in Utopic:
In Progress
Bug description:
[SRU justification]
The version of the library in the archive for Utopic and Trusty has been built prior to a change in glibc that removes an expected symbol. Rebuild of the libnss-ldap library with the current source package will render the library unusable and may cause systems to become unbootable.
[Impact]
Without this fix, a rebuild of the libnss-ldap package will cause grave impact where usage of the libnss-ldap will segfault. Such a segfault during the boot process will cause the system to become unbootable.
[Fix]
Backport the glibc-2.16.patch that is now merged in Vivid into Utopic and Trusty. The version of the library in Precise already uses the correct glibc symbol.
[Test Case]
On a server properly configured for ldap authentication :
root at trusty-ldapclient:~# getent passwd john
john:x:10000:5000:John Doe:/home/john:/bin/bash
The same test on arm64 or ppc64el platform where the libnss-ldap have
been rebuilt recently you will get :
root at trusty-ldapclient:~# getent passwd john
Segmentation fault (core dumped)
$ sudo apt-get download libnss-ldap
$ mkdir tmp
$ dpkg -x libnss-ldap_264-2.2ubuntu4_amd64.deb tmp
$ nm -D tmp/lib/x86_64-linux-gnu/libnss_ldap-2.15.so |grep lock$
w __pthread_mutex_lock
w __pthread_mutex_unlock
#Rebuild the library
$ pull-lp-source libnss-ldap trusty
$ sbuild -A -d trusty libnss-ldap_264-2.2ubuntu4.dsc
$ rm -Rf tmp/*
$ dpkg -x libnss-ldap_264-2.2ubuntu4_amd64.deb tmp
$ nm -D tmp/lib/x86_64-linux-gnu/libnss_ldap-2.19.so | grep lock$
U __libc_lock_lock
U __libc_lock_unlock
Notice that the libnss-ldap version change (2.15 -> 2.19). With the
newly built version, the expected _pthread_mutex_lock|unlock is no
longer present.
[Regression]
None expected. This is already present and in use in the upstream version of the library.
[Original Description of the problem]
Unlike previously thought, this bug is _NOT_ specific to the PPC64EL
architecture. More details in the analysis.
Many commands that require the use of libnss-ldap will fail with
Segmentation Fault. The boot procedure itself can be blocked with the
following message.
One potential workaround is to remove the use of ldap from the
/etc/nsswitch.conf file to at least provide a bootable system.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1387594/+subscriptions
More information about the Ubuntu-sponsors
mailing list