[Date Prev][Date Next]
Re: (ITS#5927) assertion error when using pcache
----- "Howard Chu" <email@example.com> wrote:
> firstname.lastname@example.org wrote:
> > email@example.com wrote:
> >> Full_Name: Matthew Hardin
> >> Version: 2.4.13
> >> OS: Red Hat Enterprise Linux 4 i686
> >> URL: ftp://ftp.openldap.org/incoming/
> >> Submission from: (NULL) (188.8.131.52)
> >> Hi All,
> >> We have an LDAP server that is proxying for Active Directory.
> Periodically slapd
> >> throws an assertion:
> >> slapd: [....]/ldap24/servers/slapd/schema_init.c:524:
> >> Assertion `i> 0' failed.
> >> /etc/init.d/solserver: line 192: 6620 Aborted
> (core dumped)
> >> "$EXEC_DIR/$PROC" $ARGS -h "$HOST_LIST" $EXTRA_SLAPD_ARGS
> >> Howard Chu's examination of the core file showed that the remote AD
> >> returned a member attribute with no values. This is only legal in
> LDAP when a
> >> client sets the attrsonly flag in its search request, and that flag
> was not set
> >> here.
> >> The indexer rightly asserts because pcache handed it an attribute
> with nothing
> >> to
> >> index.
> >> I'm not sure what the correct thing to do might be here, but it
> should not take
> >> down the slapd.
> > The entry should not be cached, IMHO.
> Perhaps. But then the entire query cannot be cached, because its
> result set
> would be known to be incomplete.
Of course, I meant the whole query.
> There's something more going on here, because the query in question
> searching for
> (&(objectclass=posixgroup)(memberUid=foo)(member=foo-DN)). There
> was no memberUid at all in the returned entry, so it must have matched
> member, so the member attr should not have been empty.
> AD is flaky enough already, but it's possible that back-meta may have
> the attr values during rewriting, etc.
It is perfectly legitimate for back-meta to return attrs with no values, AFAIK; only, the a_vals should contain the address of slap_dummy_bv...
Ing. Pierangelo Masarati
OpenLDAP Core Team
via Dossi, 8 - 27100 Pavia - ITALIA
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497