From 860d9f273e36ffb69f16377949b8ba9444ac99bf Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 15 Dec 2009 14:18:06 -0500 Subject: Fix tight loop in monitor If the domain heartbeat time was explicitly set in the configuration to 0, we would enter a tight loop in the heartbeat check and never answer requests from the child processes. --- server/man/sssd.conf.5.xml | 8 ++++---- server/monitor/monitor.c | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/server/man/sssd.conf.5.xml b/server/man/sssd.conf.5.xml index 95fd606e..cb378c84 100644 --- a/server/man/sssd.conf.5.xml +++ b/server/man/sssd.conf.5.xml @@ -362,12 +362,12 @@ timeout (integer) - Timeout in seconds for this particular domain. - Raising this timeout might prove useful for slower - backends like distant LDAP servers. + Timeout in seconds between heartbeats for this domain. + This is used to ensure that the backend process is + alive and capable of answering requests. - Default: 0 (no timeout) + Default: 10 diff --git a/server/monitor/monitor.c b/server/monitor/monitor.c index d47b3a80..30df2cb9 100644 --- a/server/monitor/monitor.c +++ b/server/monitor/monitor.c @@ -1060,6 +1060,11 @@ static int get_service_config(struct mt_ctx *ctx, const char *name, return ret; } + /* 'timeout = 0' should be translated to the default */ + if (svc->ping_time == 0) { + svc->ping_time = MONITOR_DEF_PING_TIME; + } + *svc_cfg = svc; talloc_free(path); -- cgit