On Thu, Feb 23, 2012 at 09:07:12PM -0500, Stephen Gallagher wrote:
> On Thu, 2012-02-23 at 14:08 -0500, Stephen Gallagher wrote:
> > On Thu, 2012-02-23 at 11:34 +0100, Jakub Hrozek wrote:
> > > On Wed, Feb 22, 2012 at 09:04:37AM -0500, Stephen Gallagher wrote:
> > > > On Wed, 2012-02-22 at 12:22 +0100, Jakub Hrozek wrote:
> > > > > On Tue, Feb 21, 2012 at 09:31:13PM -0500, Stephen Gallagher
wrote:
> > > > > > The paging control can cause issues on servers that put
limits on
> > > > > > how many paging controls can be active at one time (on
some
> > > > > > servers, it is limited to one per connection). We need to
reduce
> > > > > > our usage so that we only activate the paging control when
making
> > > > > > a request that may return an arbitrary number of results.
> > > > > >
> > > > > > This is the first step to solving
> > > > > >
https://fedorahosted.org/sssd/ticket/1202 but I wanted to
get this patch
> > > > > > on the list immediately since it changes the semantics of
> > > > > > sdap_get_generic_send() (and is therefore likely to need
merging with
> > > > > > other in-progress patches).
> > > > > >
> > > > > > Please review immediately.
> > > > > >
> > > > > >
> > > > > > I am still working on the second half of the fix for 1202,
which will
> > > > > > involve serializing requests that require the paging
control to ensure
> > > > > > that we only run one paged request at a time.
> > > > >
> > > > > I'm not sure this would work for deref because deref
searches hardcode
> > > > > the scope to LDAP_SCOPE_BASE, but this check:
> > > > >
> > > > > +
> > > > > + /* Be extra careful and never allow paging for BASE
searches,
> > > > > + * even if requested.
> > > > > + */
> > > > > + if (scope == LDAP_SCOPE_BASE) {
> > > > > + state->allow_paging = false;
> > > > > + } else {
> > > > > + state->allow_paging = allow_paging;
> > > > > + }
> > > > > +
> > > > >
> > > > > Would reset paging to false.
> > > >
> > > >
> > > > Good catch. That's mostly in there so I don't have to have
ugly checks
> > > > on every scope for multiple search base routines. I added a new
> > > > additional check after that for whether the serverctrls argument
> > > > contains an ASQ or X_DEREF control and force the allow_paging option
to
> > > > true if so.
> > > >
> > > > New patch attached.
> > >
> > > This doesn't work, at the time of the check state->serverctrls is
still
> > > NULL. You need to either check just "serverctrls" or move the
check
> > > later after state->serverctrls is assigned.
> >
> > Oops, that was stupid.
> >
> > New patch attached.
>
> Rebased atop the current master (including Jakub's autofs search base
> patch).
Ack