>> The timeouts are per request. A client must send a distinct request >> to retrieve a page, there is no overarching time limit for all of the pages.
And the OPT_TIMEOUT value I am using with python-ldap would be applicable to each separate request, right ? I need not use the 'timeout' parameters from search() and result() APIs, correct ? The reason in my case the search was running for ~15 minutes would be that client would be receiving some data in each individual request ? Unfortunately I didn't collect the network trace to confirm this :( The TIMELIMIT value won't help here On Fri, 16 Apr, 2021, 8:52 PM Howard Chu, <[email protected]> wrote: > varun mittal wrote: > >>The timeout is a per-request timeout. Isn't doing paged requests > >> explicitly about making multiple requests, with possibly semi-arbitrary > >> delays by the client between them, but each of which therefore gets its > >> own shot at the timeout? > > > > That is what I struggling with to find some clear documentation on this. > > Should the TIMEOUT value suffice, or I need to use TIMELIMIT with paged > searching. Or use timeout values with search_ext() and result() APIs > > There are multiple timeouts at different levels. > > Philip is correct. The timeouts are per request. A client must send a > distinct request > to retrieve a page, there is no overarching time limit for all of the > pages. > > > > On Fri, Apr 16, 2021 at 3:52 AM Philip Guenther < > [email protected] <mailto:[email protected]>> wrote: > > > > The timeout is a per-request timeout. Isn't doing paged requests > > explicitly about making multiple requests, with possibly > semi-arbitrary > > delays by the client between them, but each of which therefore gets > its > > own shot at the timeout? > > > > Philip Guenther > > > > On Thu, 15 Apr 2021, varun mittal wrote: > > > Any inputs on this one ? > > > > > > The client timeout parameter works for individual search page or > the entire > > > time period of the search, if there are multiple pages ? > > > > > > > > > On Fri, Apr 2, 2021 at 2:07 PM varun mittal <[email protected] > <mailto:[email protected]>> wrote: > > > > > > > I am using openldap-2.4.39 on CentOS 7, to query my AD server, > with > > > > python-ldap wrapper > > > > > > > > I set the following scheme: > > > > > > > > ldap.set_option(ldap.OPT_NETWORK_TIMEOUT, 30) > > > > ldap.set_option(ldap.OPT_TIMEOUT, 120) > > > > conn = ldap.initialize(ldap://server-ip) > > > > > > > > Using 3 types of queries - synchronous search_s(), asynchronous > with and > > > > without paging search_ext() > > > > > > > > I am not using any timeout in the _ext method or the result3() > methods > > > > > > > > One of my python client LDAP searches(asynchronous with paging) > took about > > > > 14 minutes to complete, in the customer environment. Eventually, > the search > > > > was successful. > > > > > > > > Looking at the documentation, I am not sure which timeout value > would be > > > > applicable here. > > > > > > > > I thought setting OPT_TIMEOUT should suffice for all kinds of > searches. > > > > > > > > And the strange thing is that the similar query, but synchronous( > > > > ldap_search_ext_s) from my C client failed within 120 seconds. > This is > > > > the default AD server timelimit. The C application didn't > specify any > > > > timeouts > > > > > > > > What am I missing here? > > > > > > > > > > > > -- > -- Howard Chu > CTO, Symas Corp. http://www.symas.com > Director, Highland Sun http://highlandsun.com/hyc/ > Chief Architect, OpenLDAP http://www.openldap.org/project/ >
