dovecot-2.2: master: If service_count=1 and process_limit=1 and ...
dovecot at dovecot.org
dovecot at dovecot.org
Sun Jun 24 20:57:39 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/4c31e450a867
changeset: 14654:4c31e450a867
user: Timo Sirainen <tss at iki.fi>
date: Wed Jun 13 15:34:39 2012 +0300
description:
master: If service_count=1 and process_limit=1 and >1 clients connect, log about service_count being why.
diffstat:
src/master/service-monitor.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diffs (36 lines):
diff -r 28ddc2058877 -r 4c31e450a867 src/master/service-monitor.c
--- a/src/master/service-monitor.c Mon Jun 11 23:38:45 2012 +0300
+++ b/src/master/service-monitor.c Wed Jun 13 15:34:39 2012 +0300
@@ -237,19 +237,27 @@
static void service_drop_connections(struct service_listener *l)
{
struct service *service = l->service;
+ const char *limit_name;
unsigned int limit;
int fd;
if (service->last_drop_warning +
SERVICE_DROP_WARN_INTERVAL_SECS < ioloop_time) {
service->last_drop_warning = ioloop_time;
- limit = service->process_limit > 1 ?
- service->process_limit : service->client_limit;
+ if (service->process_limit > 1) {
+ limit_name = "process_limit";
+ limit = service->process_limit;
+ } else if (service->set->service_count == 1) {
+ i_assert(service->client_limit == 1);
+ limit_name = "client_limit/service_count";
+ limit = 1;
+ } else {
+ limit_name = "client_limit";
+ limit = service->client_limit;
+ }
i_warning("service(%s): %s (%u) reached, "
"client connections are being dropped",
- service->set->name,
- service->process_limit > 1 ?
- "process_limit" : "client_limit", limit);
+ service->set->name, limit_name, limit);
}
if (service->type == SERVICE_TYPE_LOGIN) {
More information about the dovecot-cvs
mailing list