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

Re: backend relay with empty suffix

Nikos Voutsinas wrote:

> Please note, that it is the slapd which segfaults and not the client.

This is how I understood the issue.

> This
> shouldn't have happened no matter what the client is doing.

I agree, that's why I'm trying to help you.  Nothing personal, but slapd
crashing concerns me more that the issue you're having with some client.

> 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.

> and
> with the overlay,suffixmassage combination slapd seagfaults.
> So, if the usage of "overlay,suffixmassage", instead of the "relay <>
> massage", is "legal" and if there isnt anything obviously wrong in the rest
> of the configuration, I might even start with debugging the segmentation
> fault on slapd

Back to your initial questions:

> Questions:
> 1. What is the status with the usage of empty suffixes? Is this the cause of the problem here?

Should be just fine.

> 2. How the relay,massage pair differs from overlay,suffixmassage in relay database?

They should not differ; back-relay automatically instantiates slapo-rwm
when the "relay" directive is used.  The only difference is that if
"relay" is used with a DN, the database to relay for is selected once
for all, otherwise it gets selected for each operation.

> 3. Could slapo-rwm be used as a workaround to this problem?

Well, I'd say no, but there might be details I'm overlooking.
Explicitly instantiating slapo-rwm makes sense if you want to do more
than just suffix massaging while relaying.

> BTW: slapd segfaults when I replace the relay,massage pair with overlay,suffixmassage.

It's a bug: it tries to lookup a database to relay for when unbinding,
but unbind has no DN, so a strcmp on NULL is performed.  This does not
happen when using the "relay" directive because relay database selection
does not occur for each operation.  Please file an ITS for this issue.


Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   pierangelo.masarati@sys-net.it