[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: backend relay with empty suffix
Pierangelo Masarati wrote:
With the relay,massage combination, slapd ends up looking for a non-existent
db key (only when searching is done through the real naming context)
What does this mean? If the virtual naming context is "" and you search
using the real naming context, the virtual database shouldn't come into
play at all.
I think I've tracked down the problem to this one:
When search is done against the real naming context, asking for
hasSubordinates, slapd rewrites the searchDN/key to look for in BDB
in very odd (and obviously wrong) way. (see logs below)
Note that there is no problem when searches are done through the virtual
naming context and when searches are done in the real naming context
with the relay database in slapd.conf commented out.
I can't be sure if this is another side effect of the empty suffix in
the virtual naming context, a new issue totally unrelated with the relay
backend, or just a result of a faulty configuration (e.g. ACLs)
SRCH "ou=People,dc=contacts,dc=uoa,dc=gr" 0 0
1 0 0
begin get_filter
PRESENT
end get_filter 0
filter: (objectClass=*)
=> get_ctrls
=> get_ctrls: oid="2.16.840.1.113730.3.4.2" (noncritical)
<= get_ctrls: n=1 rc=0 err=""
attrs:
hasSubordinates
objectClass
conn=0 op=2 SRCH base="ou=People,dc=contacts,dc=uoa,dc=gr" scope=0
deref=0 filter="(objectClass=*)"
conn=0 op=2 SRCH attr=hasSubordinates objectClass
slap_global_control: unavailable control: 2.16.840.1.113730.3.4.2
==> limits_get: conn=0 op=2
dn="uid=nvoutsin,ou=people,dc=contacts,dc=uoa,dc=gr"
[rw] searchDN: "ou=People,dc=contacts,dc=uoa,dc=gr" ->
"ou=People,dc=contacts,dc=uoa,dc=gr,ou=People,dc=contacts,dc=uoa,dc=gr"
>>> dnPrettyNormal:
<ou=People,dc=contacts,dc=uoa,dc=gr,ou=People,dc=contacts,dc=uoa,dc=gr>
<<< dnPrettyNormal:
<ou=People,dc=contacts,dc=uoa,dc=gr,ou=People,dc=contacts,dc=uoa,dc=gr>,
<ou=people,dc=contacts,dc=uoa,dc=gr,ou=people,
dc=contacts,dc=uoa,dc=gr>
str2filter "(objectClass=*)"
begin get_filter
PRESENT
end get_filter 0
=> bdb_search
bdb_dn2entry("ou=people,dc=contacts,dc=uoa,dc=gr,ou=people,dc=contacts,dc=uoa,dc=gr")
=> bdb_dn2id("dc=gr,ou=people,dc=contacts,dc=uoa,dc=gr")
<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found
(-30989)
entry_decode: "ou=People,dc=contacts,dc=uoa,dc=gr"