dovecot/config processes one more time - which are safe to kill?

Timo Sirainen tss at iki.fi
Mon Jan 14 02:43:21 EET 2019


On 13 Dec 2018, at 11.18, Arkadiusz Miśkiewicz <arekm at maven.pl> wrote:
> 
> 
> Hello.
> 
> The problem with dovecot/config processes never ending and spawning new
> one on each reload
> (https://www.dovecot.org/list/dovecot/2016-November/106058.html) is
> becoming a problem here:
> 
> # ps aux|grep dovecot/config|wc -l
> 206

I think you also have 206 other Dovecot processes that are keeping the config process open? Maybe 206 imap-login processes or something? Anyway I'd expect that this would happen only if some other process is keeping a UNIX socket connection open to the config process. Unless of course there's some bug that just isn't shutting them down even though they don't have any connections.. But at least I couldn't easily reproduce that.

I suppose there isn't much of a reason for existing processes to keep the config socket open after reload, so a patch like below would likely help. Although it probably should be delayed so that existing imap/pop3-login connections doing STARTTLS wouldn't fail if that causes a new config lookup.

diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c
index 3de11fa1b..41005cb5e 100644
--- a/src/lib-master/master-service.c
+++ b/src/lib-master/master-service.c
@@ -815,6 +815,7 @@ void master_service_stop_new_connections(struct master_service *service)
        }
        if (service->login != NULL)
                master_login_stop(service->login);
+       master_service_close_config_fd(service);
 }

 bool master_service_is_killed(struct master_service *service)

> That's a lot of wasted memory - dovecot/config processes ate over 30GB
> of ram on 64GB box.

Are you saying your config processes take 149 MB each? That doesn't sound right, unless you have a huge number of SSL certificates?


More information about the dovecot mailing list