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

problem reading directory with 2.1.17



Hi,

I'm finally getting around to experimenting with 2.1.x and so I've
compiled 2.1.17 on a Red Hat Linux 9 box. Unfortunately, I'm seeing a
problem I've never seen before.

When I run the following search:

  ldapsearch -vxh foo.corp -b 'dc=google,dc=com' -s sub

I see this on the server:

daemon: activity on 1 descriptors
daemon: new connection on 7
ldap_pvt_gethostbyname_a: host=foo.corp.google.com, r=0
str2filter "(objectclass=*)"
put_filter: "(objectclass=*)"
put_filter: simple
put_simple_filter: "objectclass=*"
begin get_filter
PRESENT
ber_scanf fmt (m) ber:
ber_dump: buf=0x081c5da0 ptr=0x081c5da0 end=0x081c5dad len=13
  0000:  87 0b 6f 62 6a 65 63 74  63 6c 61 73 73            ..objectclass     
end get_filter 0
daemon: added 7r
daemon: activity on:
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 7r
daemon: read activity on 7
connection_get(7)
connection_get(7): got connid=0
connection_read(7): checking for input on id=0
ber_get_next
ldap_read: want=9, got=9
  0000:  30 0c 02 01 01 60 07 02  01                        0....`...         
ldap_read: want=5, got=5
  0000:  03 04 00 80 00                                     .....             
ber_get_next: tag 0x30 len 12 contents:
ber_dump: buf=0x081c35c8 ptr=0x081c35c8 end=0x081c35d4 len=12
  0000:  02 01 01 60 07 02 01 03  04 00 80 00               ...`........      
do_bind
ber_get_next
ldap_read: want=9 error=Resource temporarily unavailable
ber_get_next on fd 7 failed errno=11 (Resource temporarily unavailable)
ber_scanf fmt ({imt) ber:
ber_dump: buf=0x081c35c8 ptr=0x081c35cb end=0x081c35d4 len=9
  0000:  60 07 02 01 03 04 00 80  00                        `........         
ber_scanf fmt (m}) ber:
ber_dump: buf=0x081c35c8 ptr=0x081c35d2 end=0x081c35d4 len=2
  0000:  00 00                                              ..                
>>> dnPrettyNormal: <>
<<< dnPrettyNormal: <>, <>
do_bind: version=3 dn="" method=128
send_ldap_result: conn=0 op=0 p=3
send_ldap_result: err=0 matched="" text=""
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 7
  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........    
do_bind: v3 anonymous bind
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 7r
daemon: read activity on 7
connection_get(7)
connection_get(7): got connid=0
connection_read(7): checking for input on id=0
ber_get_next
ldap_read: want=9, got=9
  0000:  30 35 02 01 02 63 30 04  10                        05...c0..         
ldap_read: want=46, got=46
  0000:  64 63 3d 67 6f 6f 67 6c  65 2c 64 63 3d 63 6f 6d   dc=google,dc=com  
  0010:  0a 01 02 0a 01 00 02 01  00 02 01 00 01 01 00 87   ................  
  0020:  0b 6f 62 6a 65 63 74 63  6c 61 73 73 30 00         .objectclass0.    
ber_get_next: tag 0x30 len 53 contents:
ber_dump: buf=0x081c5290 ptr=0x081c5290 end=0x081c52c5 len=53
  0000:  02 01 02 63 30 04 10 64  63 3d 67 6f 6f 67 6c 65   ...c0..dc=google  
  0010:  2c 64 63 3d 63 6f 6d 0a  01 02 0a 01 00 02 01 00   ,dc=com.........  
  0020:  02 01 00 01 01 00 87 0b  6f 62 6a 65 63 74 63 6c   ........objectcl  
  0030:  61 73 73 30 00                                     ass0.             
ber_get_next
ldap_read: want=9 error=Resource temporarily unavailable
ber_get_next on fd 7 failed errno=11 (Resource temporarily unavailable)
do_search
ber_scanf fmt ({miiiib) ber:
ber_dump: buf=0x081c5290 ptr=0x081c5293 end=0x081c52c5 len=50
  0000:  63 30 04 10 64 63 3d 67  6f 6f 67 6c 65 2c 64 63   c0..dc=google,dc  
  0010:  3d 63 6f 6d 0a 01 02 0a  01 00 02 01 00 02 01 00   =com............  
  0020:  01 01 00 87 0b 6f 62 6a  65 63 74 63 6c 61 73 73   .....objectclass  
  0030:  30 00                                              0.                
>>> dnPrettyNormal: <dc=google,dc=com>
=> ldap_bv2dn(dc=google,dc=com,0)
<= ldap_bv2dn(dc=google,dc=com,0)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=google,dc=com,272)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=google,dc=com,272)=0
<<< dnPrettyNormal: <dc=google,dc=com>, <dc=google,dc=com>
SRCH "dc=google,dc=com" 2 0    0 0 0
begin get_filter
PRESENT
ber_scanf fmt (m) ber:
ber_dump: buf=0x081c5290 ptr=0x081c52b6 end=0x081c52c5 len=15
  0000:  87 0b 6f 62 6a 65 63 74  63 6c 61 73 73 30 00      ..objectclass0.   
end get_filter 0
    filter: (objectClass=*)
ber_scanf fmt ({M}}) ber:
ber_dump: buf=0x081c5290 ptr=0x081c52c3 end=0x081c52c5 len=2
  0000:  00 00                                              ..                
    attrs:
=> ldbm_back_search
dn2entry_r: dn: "dc=google,dc=com"
=> dn2id( "dc=google,dc=com" )
=> ldbm_cache_open( "/var/lib/ldap/dn2id.gdbm", 34, 600 )
ldbm_cache_open (blksize 4096) (maxids 1022) (maxindirect 9)
<= ldbm_cache_open (opened 0)
<= dn2id NOID
send_ldap_result: conn=0 op=1 p=3
send_ldap_result: err=10 matched="" text=""
send_ldap_response: msgid=2 tag=101 err=32
ber_flush: 14 bytes to sd 7
  0000:  30 0c 02 01 02 65 07 0a  01 20 04 00 04 00         0....e... ....    
ldap_write: want=14, written=14
  0000:  30 0c 02 01 02 65 07 0a  01 20 04 00 04 00         0....e... ....    
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 7r
daemon: read activity on 7
connection_get(7)
connection_get(7): got connid=0
connection_read(7): checking for input on id=0
ber_get_next
ldap_read: want=9, got=7
  0000:  30 05 02 01 03 42 00                               0....B.           
ber_get_next: tag 0x30 len 5 contents:
ber_dump: buf=0x081c5320 ptr=0x081c5320 end=0x081c5325 len=5
  0000:  02 01 03 42 00                                     ...B.             
ber_get_next
ldap_read: want=9, got=0

ber_get_next on fd 7 failed errno=0 (Success)
connection_read(7): input error=-2 id=0, closing.
connection_closing: readying conn=0 sd=7 for close
connection_close: deferring conn=0 sd=7
do_unbind
connection_resched: attempting closing conn=0 sd=7
connection_close: conn=0 sd=7
daemon: removing 7
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: select: listen=6 active_threads=0 tvp=NULL

The line 'ber_get_next on fd 7 failed errno=11 (Resource temporarily
unavailable)' seems significant. ldap.h gives error 11 as
LDAP_ADMINLIMIT_EXCEEDED, which I've never seen before.

ACLs and file permissions are currently wide-open, so that can't be the
problem. 2.0.x reads the directory perfectly using the same slapd.conf.

Anyone got a bright idea?

Ian
-- 
Ian Macdonald               | May the fleas of a thousand camels infest
System Administrator        | your armpits. 
Google, Inc.                | 
ian@google.com              | 
+1 650-623-4265             |