Full_Name: Hallvard B Furuseth
Version: RE23
OS: Linux
URL:
Submission from: (NULL) (129.240.202.105)
Submitted by: hallvard
overlay chain breaks with databases ldbm and ldif:
./run -b {ldbm or ldif} test032-chain outputs:
...
Starting second slapd on TCP/IP port 9012...
...
Comparing "cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com"
on port 9012...
ldapcompare failed (10)!
ldapcompare output in testrun/test.out:
Compare Result: Referral (10)
Matched DN: ou=People,dc=example,dc=com
Referral: ldap://localhost:9011/ou=People,dc=example,dc=com
UNDEFINED
testrun/slapd.1.log says the Compare was sent to the chained server, but
with baseDN=<Matched DN above>:
...
do_compare: dn (ou=People,dc=example,dc=com) attr (cn) value (mark elliot)
conn=5 op=2 CMP dn="ou=People,dc=example,dc=com" attr="cn"
...
conn=5 op=2 RESULT tag=111 err=16 text=
...
Slapcat says the Matched DN entry is correct (same as in a BDB run):
dn: ou=People,dc=example,dc=com
objectClass: referral
objectClass: extensibleObject
ou: People
ref: ldap://localhost:9011/ou=People,dc=example,dc=com
structuralObjectClass: referral
Also the Statslog output is wrong for all three databases:
With LDBM and LDIF, the CMP operation is not logged, only its result:
grep '^conn=4' testrun/slapd.2.log # the ldapcompare operation above
conn=4 fd=14 ACCEPT from IP=127.0.0.1:45280 (IP=127.0.0.1:9012)
conn=4 op=0 BIND dn="" method=128
conn=4 op=0 RESULT tag=97 err=0 text=
conn=4 op=1 RESULT tag=111 err=10 text=
conn=4 op=2 UNBIND
conn=4 fd=14 closed
With BDB, the CMP operation is not logged, but both the returned
result and the suppressed referral result is logged:
conn=4 fd=12 ACCEPT from IP=127.0.0.1:42190 (IP=127.0.0.1:9012)
conn=4 op=0 BIND dn="" method=128
conn=4 op=0 RESULT tag=97 err=0 text=
conn=4 op=1 RESULT tag=111 err=6 text=
conn=4 op=1 RESULT tag=111 err=10 text=
conn=4 op=2 UNBIND
conn=4 fd=12 closed
I haven't tried other databases, but since two different databases
had the same bug and same wrong Statlog, I'm guessing others do too.