[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: backglue.c sometimes falsely returns LDAP_SIZELIMIT_EXCEEDED (ITS#2888)
On Mon, Jan 19, 2004 at 08:21:03AM +0000, ando@sys-net.it wrote:
>
> > The current fix needs to be reworked, it ignores the case of
> > administrative limits being hit.
>
> The user-enforced limits are honored correctly,
I just tested again, and it still fails in some case. E.g. I have the
following databases:
database ldap
uri "ldap://10.0.0.1/"
subordinate
suffix "ou=people,dc=suse,dc=de"
[..]
database ldbm
suffix "dc=suse,dc=de"
[..]
The second database contains exactly one entry matching the filter
"uid=rh*". And the first one contains some more entries that match the
filter.
If I now do a subtree search on base "dc=suse,dc=de" with the filter
"uid=rh*" and sizelimit set to 1. I get the entry from the first datebase
with the result code set to LDAP_SUCCESS ( correct would be
SIZE_LIMIT_EXCEEDED ). If I change the sizelimt to 2 it correctly returns
2 entries and SIZE_LIMIT_EXCEEDED, as there are more entries matching the
filter.
> with a possible exception when the user requests a limit that's exactly
> equal to the number of entries, which I do not recall whether it should
> be a success or a sizelimit exceeded.
That should be success, AFAIK.
> For administrative limits, I think there's a design issue:
> each database in the glued pool will take care of enforcing
> admin limits within its scope; we also need to take care of
> the global (or glued) limits, which, of course, can only be
> of global scope. So the glue_back_search() will need to find
> if there's any, and apply them. Did I miss anything?
>
> Ando.
--
regards,
Ralf