Hi all,

I'm not sure if this is a bug or we are doing something wrong.  For
quite some time now, we have been using ldap to provide group
information for our linux/unix desktop machines.  I believer there are
multiple methods of providing group access, this is the format we are using:

# foobar, group, cs.brown.edu
dn: cn=foobar,ou=group,dc=cs,dc=brown,dc=edu
objectClass: posixGroup
objectClass: top
cn: ugrad
gidNumber: 1200
memberUid: t1
memberUid: t2
memberUid: t3
memberUid: t4
memberUid: t5
.
.
.

Up until recently, this had been working great.  We are now experiencing
hangs whenever we try to update the records with one particular group.
I think the hangs are occur when we try to feed too much data to
ldapmodify at a time.  For instance, if I have the above group and try
to apply the following ldif file:

dn: cn=foobar,ou=group,dc=cs,dc=brown,dc=edu
changetype: modify
replace: memberUid
memberUid: t1
memberUid: t2
memberUid: t3
memberUid: t4
memberUid: t5
memberUid: t6
memberUid: t7
memberUid: t8
memberUid: t9
.
.
.
memberUid: t2477
memberUid: t2478
memberUid: t2479

The update simply hangs.  Tossing a "-d 65535" shows that the process is
sitting in loop spitting out messages similar to:

ldap_int_select
ldap_result ld 0x1e72bf0 msgid 5
wait4msg ld 0x1e72bf0 msgid 5 (timeout 100000 usec)
wait4msg continue ld 0x1e72bf0 msgid 5 all 1
** ld 0x1e72bf0 Connections:
* host: ldapmaster.cs.brown.edu port: 6360 (default)
refcnt: 2 status: Connected
last used: Thu Oct 15 10:27:45 2009
** ld 0x1e72bf0 Outstanding Requests:
* msgid 5, origid 5, status InProgress
outstanding referrals 0, parent count 0
ld 0x1e72bf0 request count 1 (abandoned 0)
** ld 0x1e72bf0 Response Queue:
Empty
ld 0x1e72bf0 response count 0
ldap_chkResponseList ld 0x1e72bf0 msgid 5 all 1
ldap_chkResponseList returns ld 0x1e72bf0 NULL
ldap_int_select

Hopefully, this means something more to someone on this list than it
does to me;)  Interestingly, if I drop the last entry and change the
ldif file to be:

dn: cn=foobar,ou=group,dc=cs,dc=brown,dc=edu
changetype: modify
replace: memberUid
memberUid: t1
memberUid: t2
memberUid: t3
memberUid: t4
memberUid: t5
memberUid: t6
memberUid: t7
memberUid: t8
memberUid: t9
.
.
.
memberUid: t2476
memberUid: t2477
memberUid: t2478

Then the update proceeds.  However, if I change the last entry to read:

memberUid: t2478000

Then it hangs again.  Whereas with the last entry of

memberUid: t247800

it updates just fine.  This smells of some buffer filling or something
else similar.

We are running with debian's lenny version of openldap, version 2.4.11-1
(not sure what's different about the "-1" version).  Other details which
may be pertinent:

- we are running back_bdb
- syncprov
- GSSAPI authentication

I have not tried setting up a test server running 2.4.16/19, but did
spend time looking through the chnage logs and bug system and didn't see
anything that appeared to apply.  However, I certainly could have missed
something.

Any help would be most appreciated, as we currently have one group which
we are no longer able to add any entries to.

Thanks!

Mark

Reply via email to