[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