Issue 4933 - syncrepl unlimited timeout vs. .ldaprc
Summary: syncrepl unlimited timeout vs. .ldaprc
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-04-20 20:56 UTC by donn@u.washington.edu
Modified: 2014-08-01 21:05 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description donn@u.washington.edu 2007-04-20 20:56:55 UTC
Full_Name: Donn Cave
Version: 2.4.4
OS: Red Hat RHEL 3
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (128.95.135.150)


Appears to me that unless timelimit value passed to ldap_search_ext() is
positive, the ld_timelimit from .ldaprc overrides, so there's no way for
syncrepl ldap_sync_search() to literally specify "unlimited".

To duplicate: configure syncrepl timelimit=unlimited;  edit /.ldaprc ->
"TIMELIMIT 23"; start replica slapd with a sufficiently large replication
backlog; observe timeout at 23 seconds.

To kludge:  use extravagantly large value instead:  if (si->si_tlimit > 0)
timeout.tv_sec = si->tlimit; else timeout.tv_sec = 31536000;

and pass &timeout unconditionally.

Comment 1 Howard Chu 2007-05-04 23:34:56 UTC
donn@u.washington.edu wrote:
> Full_Name: Donn Cave
> Version: 2.4.4
> OS: Red Hat RHEL 3
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (128.95.135.150)
> 
> 
> Appears to me that unless timelimit value passed to ldap_search_ext() is
> positive, the ld_timelimit from .ldaprc overrides, so there's no way for
> syncrepl ldap_sync_search() to literally specify "unlimited".
> 
> To duplicate: configure syncrepl timelimit=unlimited;  edit /.ldaprc ->
> "TIMELIMIT 23"; start replica slapd with a sufficiently large replication
> backlog; observe timeout at 23 seconds.
> 
> To kludge:  use extravagantly large value instead:  if (si->si_tlimit > 0)
> timeout.tv_sec = si->tlimit; else timeout.tv_sec = 31536000;
> 
> and pass &timeout unconditionally.

Hmmm. I guess this is a consequence of changing the timeout 
representation in the LDAP handle. I suppose we can just make the 
syncrepl consumer do an explicit ldap_set_option() on its session 
handles to override any .ldaprc setting. Will have to play with this a 
bit to see how we can maintain backward compatibility.

-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/

Comment 2 Howard Chu 2007-06-08 08:50:51 UTC
moved from Incoming to Development
Comment 3 Howard Chu 2007-06-19 09:50:34 UTC
changed notes
changed state Open to Test
Comment 4 Howard Chu 2007-09-02 10:23:51 UTC
changed notes
changed state Test to Release
Comment 5 Howard Chu 2007-09-21 23:32:31 UTC
changed state Release to Closed
Comment 6 Howard Chu 2009-02-17 06:57:09 UTC
moved from Development to Archive.Development
Comment 7 OpenLDAP project 2014-08-01 21:05:25 UTC
fixed in HEAD/RE24