From: Timo Sirainen Date: Tue, 20 Jan 2009 20:04:25 +0000 (-0500) Subject: If all login processes are in use and we can't create a new one, log a warning. X-Git-Tag: 1.2.beta1~77 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09bf2d3a07b014f3e871079f3ee0614cd781645c;p=thirdparty%2Fdovecot%2Fcore.git If all login processes are in use and we can't create a new one, log a warning. --HG-- branch : HEAD --- diff --git a/src/master/login-process.c b/src/master/login-process.c index c6e88f1fac..bd7608e9f2 100644 --- a/src/master/login-process.c +++ b/src/master/login-process.c @@ -23,6 +23,8 @@ #include #include +#define LOGIN_LIMIT_WARNING_MIN_INTERVAL (60*5) + struct login_process { struct child_process process; @@ -801,6 +803,12 @@ static int login_group_start_missings(struct login_group *group) if (group->oldest_prelogin_process != NULL && group->oldest_prelogin_process->initialized) login_process_destroy(group->oldest_prelogin_process); + else if (ioloop_time - group->last_limit_warning > + LOGIN_LIMIT_WARNING_MIN_INTERVAL) { + group->last_limit_warning = ioloop_time; + i_warning("All login processes are in use. You may " + "need to increase login_max_processes_count"); + } } /* we want to respond fast when multiple clients are connecting diff --git a/src/master/login-process.h b/src/master/login-process.h index c650feb8af..5a25f5a44c 100644 --- a/src/master/login-process.h +++ b/src/master/login-process.h @@ -13,6 +13,7 @@ struct login_group { unsigned int processes; unsigned int listening_processes; unsigned int wanted_processes_count; + time_t last_limit_warning; /* if login_process_per_connection=yes this contains the list of processes that are in LOGIN_STATE_FULL_PRELOGINS state */