[Date Prev][Date Next] [Chronological] [Thread] [Top]

can't insert very large multivalued attribute (ITS#1531)



Full_Name: Florent Guillaume
Version: 2.0.18
OS: Linux
URL: 
Submission from: (NULL) (213.56.215.224)


I'm trying to inster in my directory (with ldapadd)
the following entry with a pretty big multivalued attribute:

dn: cn=Member,ou=roles,o=fc-sante
objectClass: top
objectClass: groupOfUniqueNames
cn: Member
uniqueMember: uid=usertest,ou=People,o=fc-sante
uniqueMember: uid=webmaster, ou=People , o=fc-sante
... 7650 other uniqueMember here ...
uniqueMember: uid=nescoriguel, ou=People , o=fc-sante

ldapadd -v says:

ldap_initialize( <DEFAULT> )
add objectClass:
        top
        groupOfUniqueNames
add cn:
        Member
add uniqueMember:
        uid=usertest,ou=People,o=fc-sante
        uid=webmaster, ou=People , o=fc-sante
... 7650 uid ...
        uid=nescoriguel, ou=People , o=fc-sante
adding new entry "cn=Member,ou=roles,o=fc-sante"
ldap_add: Can't contact LDAP server
ldif_record() = 81


And nothing is added to LDAP.


If I start slapd with -d 255, I get this:
connection_get(9)
connection_get(9): got connid=0
connection_read(9): checking for input on id=0
ber_get_next
ldap_read: want=1, got=1
  0000:  30                                                 0                 
ldap_read: want=1, got=1
  0000:  1a                                                 .                 
ldap_read: want=26, got=26
  0000:  02 01 01 60 15 02 01 03  04 0a 6f 3d 66 63 2d 73   ...`......o=fc-s  
  0010:  61 6e 74 65 80 04 74 6f  74 6f                     ante..toto        
ber_get_next: tag 0x30 len 26 contents:
ber_dump: buf=0x080d14f0 ptr=0x080d14f0 end=0x080d150a len=26
  0000:  02 01 01 60 15 02 01 03  04 0a 6f 3d 66 63 2d 73   ...`......o=fc-s  
  0010:  61 6e 74 65 80 04 74 6f  74 6f                     ante..toto        
ber_get_next
ldap_read: want=1 error=Resource temporarily unavailable
ber_get_next on fd 9 failed errno=11 (Resource temporarily unavailable)
do_bind
ber_scanf fmt ({iat) ber:
ber_dump: buf=0x080d14f0 ptr=0x080d14f3 end=0x080d150a len=23
  0000:  60 15 02 01 03 04 0a 6f  3d 66 63 2d 73 61 6e 74   `......o=fc-sant  
  0010:  65 80 04 74 6f 74 6f                               e..toto           
ber_scanf fmt (o}) ber:
ber_dump: buf=0x080d14f0 ptr=0x080d1504 end=0x080d150a len=6
  0000:  80 04 74 6f 74 6f                                  ..toto            
do_bind: version=3 dn="o=fc-sante" method=128
==> ldbm_back_bind: dn: o=fc-sante
dn2entry_r: dn: "O=FC-SANTE"
=> dn2id( "O=FC-SANTE" )
=> ldbm_cache_open( "dn2id.dbb", 73, 600 )
ldbm_cache_open (blksize 8192) (maxids 2046) (maxindirect 5)
<= ldbm_cache_open (opened 0)
<= dn2id 1
=> id2entry_r( 1 )
=> ldbm_cache_open( "id2entry.dbb", 73, 600 )
ldbm_cache_open (blksize 8192) (maxids 2046) (maxindirect 5)
<= ldbm_cache_open (opened 1)
=> str2entry
<= str2entry(o=fc-sante) -> -1 (0x80d2020)
entry_rdwr_rlock: ID: 1
<= id2entry_r( 1 ) 0x80d2020 (disk)
entry_rdwr_runlock: ID: 1
====> cache_return_entry_r( 1 ): created (0)
do_bind: v3 bind: "o=fc-sante" to "o=fc-sante"
send_ldap_result: conn=0 op=0 p=3
send_ldap_result: 0::
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 9
  0000:  30 0c 02 01 01 61 07 0a  01 00 04 00 04 00         0....a........    
ldap_write: want=14, written=14
  0000:  30 0c 02 01 01 61 07 0a  01 00 04 00 04 00         0....a........    
daemon: select: listen=6 active_threads=1 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 9r
daemon: read activity on 9
connection_get(9)
connection_get(9): got connid=0
connection_read(9): checking for input on id=0
ber_get_next
ldap_read: want=1, got=1
  0000:  30                                                 0                 
ldap_read: want=1, got=1
  0000:  83                                                 .                 
ldap_read: want=3, got=3
  0000:  04 7d 8d                                           .}.               
ber_get_next on fd 9 failed errno=34 (Numerical result out of range)
connection_read(9): input error=-2 id=0, closing.
connection_closing: readying conn=0 sd=9 for close
connection_close: conn=0 sd=9


Any ideas where the problem comes from ?
If I cut down on the size, using 2000 uniqueMember works.

Thanks,

Florent