Hi,

As co-contributor of the latest piece of code about SSS/VLV, I will try and
give some explanations : VLV does not give a clean way to destroy the server
side sorted entries list.

The SSS/VLV overlay implementation is using a limit in order to manage
memory limits :  a connection will be limited to a specified number of paged
searches. The only way to reset this limit is to close and reopen a
connection.

Maybe a timeout will be a good idea also but this is not implemented now.

Regards,

2011/7/1 Chris Card <[email protected]>

>
>
> > >>> When using the sssvlv overlay how does the client tell the server
> that the
> > >> sort request can be thrown away, so that sort requests don't hang
> around until
> > >> sssvlv-max or sssvlv-maxpercon are exceeded?
> > >>
> > >> There is no official mechanism for this. This is a flaw in the
> Sorting/VLV
> > >> specification. For Paged Results you simply send a followup request
> with
> > >> pagesize set to zero, but that doesn't apply for VLV.
> > >>
> > >> I believe in our current implementation, if you send a new Paged
> Results
> > >> request on a connection that has VLVs outstanding, one of the VLVs
> will be
> > >> aborted. Unfortunately, if you have multiple VLVs outstanding, there's
> no way
> > >> to determine which one gets aborted. (Apparently this was overlooked
> when
> > >> patching the overlay to allow multiple VLVs on a connection...)
> > >
> > > Thanks for the info.
> > > Is it the case that sort requests are associated with a particular
> connection?
> >
> > What does RFC2891 say?
> >
> As far as I can see it doesn't mention connections.
>
> However, looking at the code in sssvlv.c, it appears that a sort operation
> is associated with a session, and a session
> is associated with a connection, e.g. on line 900 of sssvlv.c in
> sssvlv_op_search():
>
>             sort_conns[op->o_conn->c_conn_idx][sess_id] = so;
>
> > >> From my testing it seems that a sort request will remain active in the
> server evenif the client disconnects, which doesn't seem right.
> >
> > How are you determining that this is the case?
>
> I'm using ldapsearch to test requests with sss and vlv controls. After
> running several such ldapsearch commands I get an
> error from the server :
>
> # search result
> search: 2
> result: 51 Server is busy
> text: Other sort requests already in progress
>
> I am assuming that the connection to the server is dropped when the
> ldapsearch command terminates; that
> must certainly be the case at the client end since the process no longer
> exists.
>
>
> Chris
>
>
>


-- 
Sebastien BAHLOUL
IAM / Security specialist
Ldap Synchronization Connector : http://lsc-project.org
Blog : http://sbahloul.wordpress.com/

Reply via email to