Hi
I'm configuring syncrepl and have some questions about its parameters. The version used is:
@(#) $OpenLDAP: slapd 2.5.13+dfsg-5 (Feb 8 2023 01:56:12) $ Debian OpenLDAP Maintainers pkg-openldap-devel@lists.alioth.debian.org
I'm using the docs from https://www.openldap.org/doc/admin25/slapdconfig.html. It says there:
"The network-timeout parameter sets how long the consumer will wait to establish a network connection to the provider. Once a connection is established, the timeout parameter determines how long the consumer will wait for the initial Bind request to complete. The defaults for these parameters come from *ldap.conf*(5)."
But, "man 5 ldap.conf " does not seem to list those defaults. Instead it says this about them:
NETWORK_TIMEOUT <integer> Specifies the timeout (in seconds) after which the poll(2)/select(2) following a connect(2) returns in case of no activity.
TIMEOUT <integer> Specifies a timeout (in seconds) after which calls to synchronous LDAP APIs will abort if no response is received. Also used for any ldap_result(3) calls where a NULL timeout pa‐ rameter is supplied.
So, I wonder what is being used as default for these. In case there is none, that would come down to 'infinite'. But I don't find that information either.
Something similar goes for 'keepalive', that is described as:
"The keepalive parameter sets the values of idle, probes, and interval used to check whether a socket is alive; idle is the number of seconds a connection needs to remain idle before TCP starts sending keepalive probes; probes is the maximum number of keepalive probes TCP should send before dropping the connection; interval is interval in seconds between individual keepalive probes. Only some systems support the customization of these values; the keepalive parameter is ignored otherwise, and system-wide settings are used. For example, keepalive="240:10:30" will send a keepalive probe 10 times, every 30 seconds, after 240 seconds of idle activity. If no response to the probes is received, the connection will be dropped."
The "man 5 ldap.conf" has these keepalive params:
KEEPALIVE_IDLE Sets/gets the number of seconds a connection needs to remain idle before TCP starts sending keepalive probes. Linux only.
KEEPALIVE_PROBES Sets/gets the maximum number of keepalive probes TCP should send before dropping the con‐ nection. Linux only.
KEEPALIVE_INTERVAL Sets/gets the interval in seconds between indi‐ vidual keepalive probes. Linux only.
Again, no defaults. We do run this on Linux, and the kernel has corresponding values for:
root@foo:/proc/sys/net/ipv4# for i in tcp_keepalive_*; do echo "$i = $(cat $i)"; done tcp_keepalive_intvl = 75 tcp_keepalive_probes = 9 tcp_keepalive_time = 7200
So, I'm guessing in my case "keepalive" will use "7200:9:75" - right? I.e. the defaults are from the OS' TCP stack configuration.
Many thanks
Dick Visser