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

indexing in 2.1.5



I had a line in slapd.conf:

index uid pres,eq

in my 2.0.27 config.

When I built 2.1.5 on Linux 7.4 with BerkeleyDB.4.0, without changing the index
area of the config, I was alarmed to find that I couldn't find (uid=aej) after
slapadd'ing the 2.0.27 slapcat.

I thought the database was busted, but I hazarded a search on my name, as
"allan*johannesen" and it came up.  I also tried the cn search exactly and it
came up.  Thinking that maybe the database wasn't trash after all, I tried a
search for (uid=*aej*), and it found it.  It also found my uid in a search for
(uid=*e*).

I built again with a config line

index uid pres,eq,sub

and I can now search for uids, exactly, as well as as substrings.

Did I make a mistake in my config file when describing the indices?  Does this
appear to be a slapd bug?  Could it be a BerkeleyDB bug?

If it helps, this was a -d-1 of slapd for the failing search, back when I had
only "pres,eq" on "uid":

daemon: activity on 1 descriptors
daemon: new connection on 12
str2filter "(objectclass=*)"
put_filter: "(objectclass=*)"
put_filter: simple
put_simple_filter: "objectclass=*"
begin get_filter
PRESENT
ber_scanf fmt (m) ber:
ber_dump: buf=0x08205670 ptr=0x08205670 end=0x0820567d len=13
  0000:  87 0b 6f 62 6a 65 63 74  63 6c 61 73 73            ..objectclass     
end get_filter 0
daemon: conn=0 fd=12 connection from IP=130.215.36.190:40439 (IP=0.0.0.0:389) accepted.
daemon: added 12r
daemon: activity on:
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 12r
daemon: read activity on 12
connection_get(12)
connection_get(12): got connid=0
connection_read(12): 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=0x08206878 ptr=0x08206878 end=0x08206884 len=12
  0000:  02 01 01 60 07 02 01 03  04 00 80 00               ...`........      
ber_get_next
ldap_read: want=9 error=Resource temporarily unavailable
ber_get_next on fd 12 failed errno=11 (Resource temporarily unavailable)
do_bind
ber_scanf fmt ({imt) ber:
ber_dump: buf=0x08206878 ptr=0x0820687b end=0x08206884 len=9
  0000:  60 07 02 01 03 04 00 80  00                        `........         
ber_scanf fmt (m}) ber:
ber_dump: buf=0x08206878 ptr=0x08206882 end=0x08206884 len=2
  0000:  00 00                                              ..                
>>> dnPrettyNormal: <>
<<< dnPrettyNormal: <>, <>
do_bind: version=3 dn="" method=128
conn=0 op=0 BIND 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 12
  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........    
conn=0 op=0 RESULT tag=97 err=0 text=
do_bind: v3 anonymous bind
daemon: select: listen=6 active_threads=1 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 12r
daemon: read activity on 12
connection_get(12)
connection_get(12): got connid=0
connection_read(12): checking for input on id=0
ber_get_next
ldap_read: want=9, got=9
  0000:  30 32 02 01 02 63 2d 04  0e                        02...c-..         
ldap_read: want=43, got=43
  0000:  64 63 3d 57 50 49 2c 20  64 63 3d 45 44 55 0a 01   dc=WPI, dc=EDU..  
  0010:  02 0a 01 00 02 01 00 02  01 00 01 01 00 a3 0a 04   ................  
  0020:  03 75 69 64 04 03 61 65  6a 30 00                  .uid..aej0.       
ber_get_next: tag 0x30 len 50 contents:
ber_dump: buf=0x081ff5f8 ptr=0x081ff5f8 end=0x081ff62a len=50
  0000:  02 01 02 63 2d 04 0e 64  63 3d 57 50 49 2c 20 64   ...c-..dc=WPI, d  
  0010:  63 3d 45 44 55 0a 01 02  0a 01 00 02 01 00 02 01   c=EDU...........  
  0020:  00 01 01 00 a3 0a 04 03  75 69 64 04 03 61 65 6a   ........uid..aej  
  0030:  30 00                                              0.                
ber_get_next
ldap_read: want=9 error=Resource temporarily unavailable
ber_get_next on fd 12 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=1 tvp=NULL
do_search
ber_scanf fmt ({miiiib) ber:
ber_dump: buf=0x081ff5f8 ptr=0x081ff5fb end=0x081ff62a len=47
  0000:  63 2d 04 0e 64 63 3d 57  50 49 2c 20 64 63 3d 45   c-..dc=WPI, dc=E  
  0010:  44 55 0a 01 02 0a 01 00  02 01 00 02 01 00 01 01   DU..............  
  0020:  00 a3 0a 04 03 75 69 64  04 03 61 65 6a 30 00      .....uid..aej0.   
>>> dnPrettyNormal: <dc=WPI, dc=EDU>
=> ldap_bv2dn(dc=WPI, dc=EDU,0)
<= ldap_bv2dn(dc=WPI, dc=EDU,0)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=WPI,dc=EDU,272)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=wpi,dc=edu,272)=0
<<< dnPrettyNormal: <dc=WPI,dc=EDU>, <dc=wpi,dc=edu>
SRCH "dc=WPI, dc=EDU" 2 0    0 0 0
begin get_filter
EQUALITY
ber_scanf fmt ({mm}) ber:
ber_dump: buf=0x081ff5f8 ptr=0x081ff61c end=0x081ff62a len=14
  0000:  a3 0a 04 03 75 69 64 04  03 61 65 6a 30 00         ....uid..aej0.    
end get_filter 0
    filter: (uid=aej)
ber_scanf fmt ({M}}) ber:
ber_dump: buf=0x081ff5f8 ptr=0x081ff628 end=0x081ff62a len=2
  0000:  00 00                                              ..                
    attrs:
conn=0 op=1 SRCH base="dc=WPI,dc=EDU" scope=2 filter="(uid=aej)"
=> bdb_back_search
bdb_dn2entry_rw("dc=wpi,dc=edu")
=> bdb_dn2id_matched( "dc=wpi,dc=edu" )
<= bdb_dn2id_matched: id=0x00000f02: entry dc=wpi,dc=edu
entry_decode: "dc=WPI,dc=EDU"
<= entry_decode(dc=WPI,dc=EDU)
search_candidates: base="dc=WPI,dc=EDU" (0x00000f02) scope=2
=> bdb_filter_candidates
	AND
=> bdb_list_candidates 0xa0
=> bdb_filter_candidates
	DN SUBTREE
=> bdb_dn2idl( "dc=wpi,dc=edu" )
<= bdb_filter_candidates: id=-1 first=1 last=5876
=> bdb_filter_candidates
	OR
=> bdb_list_candidates 0xa1
=> bdb_filter_candidates
	EQUALITY
=> bdb_equality_candidates
=> key_read
bdb_idl_fetch_key: [f4fd0f74]
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: NULL
<= bdb_equality_candidates: id=0, first=0, last=0
<= bdb_filter_candidates: id=0 first=0 last=0
=> bdb_filter_candidates
	EQUALITY
=> bdb_equality_candidates
=> key_read
bdb_idl_fetch_key: [03c91faf]
<= bdb_index_read: failed (-30990)
<= bdb_equality_candidates: NULL
<= bdb_equality_candidates: id=0, first=0, last=0
<= bdb_filter_candidates: id=0 first=0 last=0
<= bdb_list_candidates: id=0 first=0 last=0
<= bdb_filter_candidates: id=0 first=0 last=0
<= bdb_list_candidates: id=0 first=1 last=0
<= bdb_filter_candidates: id=0 first=1 last=0
bdb_search_candidates: id=0 first=1 last=0
====> bdb_cache_return_entry_r( 3842 ): created (0)
bdb_search: no candidates
send_search_result: err=0 matched="" text=""
send_ldap_response: msgid=2 tag=101 err=0
ber_flush: 14 bytes to sd 12
  0000:  30 0c 02 01 02 65 07 0a  01 00 04 00 04 00         0....e........    
ldap_write: want=14, written=14
  0000:  30 0c 02 01 02 65 07 0a  01 00 04 00 04 00         0....e........    
conn=0 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
daemon: activity on 1 descriptors
daemon: activity on: 12r
daemon: read activity on 12
connection_get(12)
connection_get(12): got connid=0
connection_read(12): 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=0x08206b48 ptr=0x08206b48 end=0x08206b4d len=5
  0000:  02 01 03 42 00                                     ...B.             
ber_get_next
ldap_read: want=9, got=0

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