[Pkg-openldap-devel] Bug#444936: slapd-ldap failure

Richard A Nelson cowboy at debian.org
Tue Oct 2 02:14:31 UTC 2007


Package: slapd
Version: 2.3.38-1
Severity: important

Preface:  I've tried to verify this as an actual bug, but my scope
of knowledge here is somewhat lacking - so it is entirely possible
I am just brain-dead...  If that is indeed the case, feel free to
lower the severity and lart the reporter appropriately.

For performance, and management reasons, I'm using the local slapd
as a proxy for some remote databases, as well as serving its own data.
- it will eventually cache some of the upstream data.

After setting up a minimal re-write setup (it will be fleshed out
later):
suffix "ou=bluepages"
rwm-suffixmassage "ou=bluepages" "ou=bluepages,o=ibm.com"
uri "ldaps://bluepages.ibm.com/"
protocol-version 3
rebind-as-user yes

I find that some local requests(bind) work fine, and some (search)
hang for quite some time...  making its use for authentication problematic -
as pam_ldap does search to find the dn, then bind on the resultant dn.

Here is the failing testcase run against the upstream server:
--------------------------------------------------------------------------
$time ldapsearch -x -P3 -Hldap://bluepages.ibm.com/  \
	-b'c=us,ou=bluepages,o=ibm.com' \
	'(&(objectClass=ibmPerson)(notesShortName=cowboy))' dn
# extended LDIF
#
# LDAPv3
# base <c=us,ou=bluepages,o=ibm.com> with scope subtree
# filter: (&(objectClass=ibmPerson)(notesShortName=cowboy))
# requesting: dn 
#

# 677990897, us, bluepages, ibm.com
dn: uid=677990897,c=us,ou=bluepages,o=ibm.com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

real    0m10.257s
user    0m0.003s
sys     0m0.000s
--------------------------------------------------------------------------

Here is the same testcase run against the localhost, proxy server:
--------------------------------------------------------------------------
$time ldapsearch -x -P3 -Hldapi:/// \
	-b'c=us,ou=bluepages' \
	'(&(objectClass=ibmPerson)(notesShortName=cowboy))' dn

# extended LDIF
#
# LDAPv3
# base <c=us,ou=bluepages> with scope subtree
# filter: (&(objectClass=ibmPerson)(notesShortName=cowboy))
# requesting: dn 
#

^C

real    0m31.375s
user    0m0.000s
sys     0m0.003s
--------------------------------------------------------------------------

In attempt to see what was going on, I ran wireshark and noticed that
the filter strings were being re-written (even without any rules on my
part), and my specified filters were being replaced with garbage !

The filter string passed to the upstream server is actually:
	(&(!(objectclass=*))(!(objectClass=*)))

If I only use the specific filter notesShortName=cowboy, then it gets
re-written to:     (!(objectclass=*)

Google has not been overly helpful, but I can't imagine that this
feature is widely used either.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing-proposed-updates
  APT policy: (500, 'testing-proposed-updates'), (500, 'proposed-updates'), (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22.4 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages slapd depends on:
ii  adduser                  3.105           add and remove users and groups
ii  coreutils                5.97-5.4        The GNU core utilities
ii  debconf [debconf-2.0]    1.5.14          Debian configuration management sy
ii  libc6                    2.6.1-5         GNU C Library: Shared libraries
ii  libdb4.2                 4.2.52+dfsg-4   Berkeley v4.2 Database Libraries [
ii  libiodbc2                3.52.5-1+b1     iODBC Driver Manager
ii  libldap-2.3-0            2.3.38-1        OpenLDAP libraries
ii  libltdl3                 1.5.24-1        A system independent dlopen wrappe
ii  libperl5.8               5.8.8-11        Shared Perl library
ii  libsasl2-2               2.1.22.dfsg1-15 Authentication abstraction library
ii  libslp1                  1.2.1-6.2       OpenSLP libraries
ii  libssl0.9.8              0.9.8e-9        SSL shared libraries
ii  libwrap0                 7.6.dbs-14      Wietse Venema's TCP wrappers libra
ii  perl [libmime-base64-per 5.8.8-11        Larry Wall's Practical Extraction 
ii  psmisc                   22.5-1          Utilities that use the proc filesy

Versions of packages slapd recommends:
ii  libsasl2-modules         2.1.22.dfsg1-15 Pluggable Authentication Modules f

-- debconf information:
  slapd/internal/adminpw: (password omitted)
* slapd/password1: (password omitted)
* slapd/password2: (password omitted)
  slapd/fix_directory: true
  shared/organization: svl.ibm.com
  slapd/upgrade_slapcat_failure:
  slapd/backend: BDB
  slapd/allow_ldap_v2: false
  slapd/no_configuration: false
  slapd/move_old_database: true
  slapd/suffix_change: false
  slapd/slave_databases_require_updateref:
  slapd/dump_database_destdir: /var/backups/slapd-VERSION
  slapd/autoconf_modules: true
  slapd/domain: svl.ibm.com
  slapd/password_mismatch:
  slapd/invalid_config: true
  slapd/upgrade_slapadd_failure:
  slapd/dump_database: when needed
  slapd/migrate_ldbm_to_bdb: true
  slapd/purge_database: false





More information about the Pkg-openldap-devel mailing list