I'm not sure whether or not this is a bug, but it sure looks strange.
$ rpm -qf /usr/bin/ssh openssh-clients-6.1p1-6.fc18.x86_64
$ ldd /usr/bin/ssh|grep ldap libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fad274fc000)
/usr/lib64/libldap-2.4.so.2 is a symbolic link to a symbolic link which passes through a -devel package.
/usr/lib64/libldap-2.4.so.2 -> libldap.so # openldap-2.4.34-1.fc18 /usr/lib64/libldap.so -> libldap-2.4.so.2.9.0 # openldap-devel-2.4.34-1.fc18 /usr/lib64/libldap-2.4.so.2.9.0 is a real file # openldap-2.4.34-1.fc18
To cut a long story short, I fixed this by uninstalling openldap-devel and reinstalling it. Now there is no -devel package in the chain:
$ ldd /usr/bin/ssh | grep ldap libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fe8caf69000)
/lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.9.0
I'd like to understand how the original situation happened, because it broke a supermin-built appliance (RHBZ#954185). I assume ldconfig must have something to do with it. There is nothing unusual in the %scripts of openldap (it just runs ldconfig as you'd expect), nor is there any special openssh/openldap config file in /etc/ld.so.conf.d.
Rich.
On Mon, 22 Apr 2013 09:36:34 +0100, Richard W.M. Jones wrote:
I'm not sure whether or not this is a bug, but it sure looks strange.
$ rpm -qf /usr/bin/ssh openssh-clients-6.1p1-6.fc18.x86_64
$ ldd /usr/bin/ssh|grep ldap libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fad274fc000)
/usr/lib64/libldap-2.4.so.2 is a symbolic link to a symbolic link which passes through a -devel package.
/usr/lib64/libldap-2.4.so.2 -> libldap.so # openldap-2.4.34-1.fc18 /usr/lib64/libldap.so -> libldap-2.4.so.2.9.0 # openldap-devel-2.4.34-1.fc18 /usr/lib64/libldap-2.4.so.2.9.0 is a real file # openldap-2.4.34-1.fc18
To cut a long story short, I fixed this by uninstalling openldap-devel and reinstalling it. Now there is no -devel package in the chain:
$ ldd /usr/bin/ssh | grep ldap libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fe8caf69000)
/lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.9.0
I'd like to understand how the original situation happened, because it broke a supermin-built appliance (RHBZ#954185). I assume ldconfig must have something to do with it. There is nothing unusual in the %scripts of openldap (it just runs ldconfig as you'd expect), nor is there any special openssh/openldap config file in /etc/ld.so.conf.d.
Some thoughts:
1) ldconfig does not touch the non-versioned .so libs (especially not if they are development-only symlinks), since it only cares about the run-time libs. It adjusts the SONAME -> FULLY-VERSIONED-LIBNAME symlinks, so .so.2 will point at the latest .so.2.x.y, for example. It would not recreate a deleted .so symlink and would not redirect it either.
2) The openldap-devel package contains a (harmless) bug, since it runs ldconfig in its scriptlets. It doesn't need to.
3) Funny things going on (f19 here), but haven't examined anything beyond this:
# rpm -e openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.9.1 libldap-2.4.so.2 -> libldap-2.4.so.2.9.1 # yum -y install openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
That makes no sense. In /lib64 it looks different (and correct), however:
# ls -la /lib64/*ldap* lrwxrwxrwx. 1 root root 20 Apr 17 22:30 /lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.9.1 -rwxr-xr-x. 1 root root 336504 Apr 15 10:56 /lib64/libldap-2.4.so.2.9.1 lrwxrwxrwx. 1 root root 22 Apr 17 22:30 /lib64/libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.9.1 -rwxr-xr-x. 1 root root 358720 Apr 15 10:56 /lib64/libldap_r-2.4.so.2.9.1 lrwxrwxrwx. 1 root root 22 Apr 22 11:18 /lib64/libldap_r.so -> libldap_r-2.4.so.2.9.1 lrwxrwxrwx. 1 root root 20 Apr 22 11:18 /lib64/libldap.so -> libldap-2.4.so.2.9.1 -rwxr-xr-x. 1 root root 45896 Apr 10 16:52 /lib64/libsmbldap.so.0
On Mon, Apr 22, 2013 at 11:27:42AM +0200, Michael Schwendt wrote:
- Funny things going on (f19 here), but haven't examined anything
beyond this:
# rpm -e openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.9.1 libldap-2.4.so.2 -> libldap-2.4.so.2.9.1 # yum -y install openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
That makes no sense.
On my (now fixed) system I get the same output from ldconfig:
$ sudo ldconfig -v | grep ldap ldconfig: Can't stat /libx32: No such file or directory ldconfig: Path `/usr/lib' given more than once ldconfig: Path `/usr/lib64' given more than once ldconfig: Can't stat /usr/libx32: No such file or directory libsmbldap.so.0 -> libsmbldap.so.0 libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
which as you say makes no sense.
On the other hand, the links on the filesystem are still correct:
$ ll /usr/lib64/libldap-2.4.so.2 lrwxrwxrwx. 1 root root 20 Apr 22 09:26 /usr/lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.9.0
Rich.
On 04/22/2013 12:22 PM, Richard W.M. Jones wrote:
On Mon, Apr 22, 2013 at 11:27:42AM +0200, Michael Schwendt wrote:
- Funny things going on (f19 here), but haven't examined anything
beyond this:
# rpm -e openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.9.1 libldap-2.4.so.2 -> libldap-2.4.so.2.9.1 # yum -y install openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
That makes no sense.
Indeed. That looks like there's something wrong with ldconfig.
On my (now fixed) system I get the same output from ldconfig:
$ sudo ldconfig -v | grep ldap ldconfig: Can't stat /libx32: No such file or directory ldconfig: Path `/usr/lib' given more than once ldconfig: Path `/usr/lib64' given more than once ldconfig: Can't stat /usr/libx32: No such file or directory libsmbldap.so.0 -> libsmbldap.so.0 libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
which as you say makes no sense.
On the other hand, the links on the filesystem are still correct:
$ ll /usr/lib64/libldap-2.4.so.2 lrwxrwxrwx. 1 root root 20 Apr 22 09:26 /usr/lib64/libldap-2.4.so.2 -> libldap-2.4.so.2.9.0
Rich.
Have you found out how this originally happened? I can't get any of my f18-f20 machines to this state.
On Tue, May 07, 2013 at 10:48:35AM +0200, Jan Synacek wrote:
Have you found out how this originally happened? I can't get any of my f18-f20 machines to this state.
No - it's still a mystery and hasn't happened again.
The only thing I do know is it's not because I manually fiddled with any links.
Rich.
Well this bug has reappeared on my machine. openldap depends on openldap-devel.
$ ll /usr/lib64/libldap* lrwxrwxrwx. 1 root root 10 Feb 25 22:59 /usr/lib64/libldap-2.4.so.2 -> libldap.so -rwxr-xr-x. 1 root root 340608 Feb 4 09:08 /usr/lib64/libldap-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 12 Feb 25 22:59 /usr/lib64/libldap_r-2.4.so.2 -> libldap_r.so -rwxr-xr-x. 1 root root 365848 Feb 4 09:08 /usr/lib64/libldap_r-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 23 Feb 25 23:09 /usr/lib64/libldap_r.so -> libldap_r-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 21 Feb 25 23:09 /usr/lib64/libldap.so -> libldap-2.4.so.2.10.2
$ for f in /usr/lib64/libldap*; do echo -n "$f comes from "; rpm -qf "$f"; done /usr/lib64/libldap-2.4.so.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap-2.4.so.2.10.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r-2.4.so.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r-2.4.so.2.10.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r.so comes from openldap-devel-2.4.39-2.fc20.x86_64 /usr/lib64/libldap.so comes from openldap-devel-2.4.39-2.fc20.x86_64
This breaks libguestfs when it happens.
I've noticed that lots of people have hit this bug before:
https://bugzilla.redhat.com/show_bug.cgi?id=240253 https://bugzilla.redhat.com/show_bug.cgi?id=248065 https://bugzilla.redhat.com/show_bug.cgi?id=249866 https://bugzilla.redhat.com/show_bug.cgi?id=447645 https://bugzilla.redhat.com/show_bug.cgi?id=460307 https://bugzilla.redhat.com/show_bug.cgi?id=693716 https://bugzilla.redhat.com/show_bug.cgi?id=1028557
It's obviously a longstanding packaging bug in openldap and I think it needs to be fixed.
Rich.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/20/2014 03:33 PM, Richard W.M. Jones wrote:
Well this bug has reappeared on my machine. openldap depends on openldap-devel.
$ ll /usr/lib64/libldap* lrwxrwxrwx. 1 root root 10 Feb 25 22:59 /usr/lib64/libldap-2.4.so.2 -> libldap.so -rwxr-xr-x. 1 root root 340608 Feb 4 09:08 /usr/lib64/libldap-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 12 Feb 25 22:59 /usr/lib64/libldap_r-2.4.so.2 -> libldap_r.so -rwxr-xr-x. 1 root root 365848 Feb 4 09:08 /usr/lib64/libldap_r-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 23 Feb 25 23:09 /usr/lib64/libldap_r.so -> libldap_r-2.4.so.2.10.2 lrwxrwxrwx. 1 root root 21 Feb 25 23:09 /usr/lib64/libldap.so -> libldap-2.4.so.2.10.2
$ for f in /usr/lib64/libldap*; do echo -n "$f comes from "; rpm -qf "$f"; done /usr/lib64/libldap-2.4.so.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap-2.4.so.2.10.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r-2.4.so.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r-2.4.so.2.10.2 comes from openldap-2.4.39-2.fc20.x86_64 /usr/lib64/libldap_r.so comes from openldap-devel-2.4.39-2.fc20.x86_64 /usr/lib64/libldap.so comes from openldap-devel-2.4.39-2.fc20.x86_64
This breaks libguestfs when it happens.
I've noticed that lots of people have hit this bug before:
https://bugzilla.redhat.com/show_bug.cgi?id=240253 https://bugzilla.redhat.com/show_bug.cgi?id=248065 https://bugzilla.redhat.com/show_bug.cgi?id=249866 https://bugzilla.redhat.com/show_bug.cgi?id=447645 https://bugzilla.redhat.com/show_bug.cgi?id=460307 https://bugzilla.redhat.com/show_bug.cgi?id=693716 https://bugzilla.redhat.com/show_bug.cgi?id=1028557
It's obviously a longstanding packaging bug in openldap and I think it needs to be fixed.
Rich.
Thanks for the report. Let's continue in the bugzilla.
https://bugzilla.redhat.com/show_bug.cgi?id=1028557
Cheers, - -- Jan Synacek Software Engineer, Red Hat
On 04/22/2013 12:22 PM, Richard W.M. Jones wrote:
On Mon, Apr 22, 2013 at 11:27:42AM +0200, Michael Schwendt wrote:
- Funny things going on (f19 here), but haven't examined anything
beyond this:
# rpm -e openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.9.1 libldap-2.4.so.2 -> libldap-2.4.so.2.9.1 # yum -y install openldap-devel # ldconfig -v|grep ldap libldap_r-2.4.so.2 -> libldap_r.so libldap-2.4.so.2 -> libldap.so
That makes no sense.
This bugzilla looks like it explains that behavior.
https://bugzilla.redhat.com/show_bug.cgi?id=159601