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

Re: limits on internal searches



Quanah Gibson-Mount wrote:



--On Saturday, June 19, 2004 4:59 PM +0200 Pierangelo Masarati <ando@sys-net.it> wrote:

I've run into a problem with test017 which is currently failing for HEAD
after I added some consistency checks on the values of search limits.
I'm about to fix it, but I found out that some syncrepl code is checking
search limits before running internal searches. Is it intended? I mean,
is there any reason the identity that performs an internal search needs to
check if any limits are set? In that case, I strongly suggest any time
limits
are checked, an appropriate value is provided to fields op->ors_tlimit
and op->ors_slimit. By protocol, these fields can only have values >= 0,
so if theey're set to SLAP_NO_LIMIT (= -1) it means they're being used
in an internal search that requirs no limitations. Otherwise, please set
them to 0 (no specific limit required, incurring in soft limits if any)
or to a positive value (e.g. 1 is used for auth{cz} related internal
searches
because strictly one value is required.


My experimentation with syncRepl indicates that it *must* have unlimited search capabilities, since it needs to be able to examine every entry in the database.

Actually, in syncrepl_del_nonpresent() requested limits were explicitly set to 0,
which mens no limit is requested and thus could incur in all limitations; in syncrepl_entry() nothing is being set; this was causing the problem.


I would no doubt set them to unlimited, but the point is that both internal searches
are being prtected behind a call to limits_check(), which enforces those limits
that might be present for the identity that is performing the internal search.


That's why I'm asking if there's a good reason to check those limits, or if they
should be ignored, and requested limits be simply set to SLAP_NO_LIMIT
like most privileged internal searches...


p.




SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497