IMAP hibernate feature committed

Teemu Huovila
Thu, 27 Aug 2015 11:58:57 -0000

On 08/26/2015 01:33 PM, Thomas Leuxner wrote:
> * Timo Sirainen <tss at iki.fi> 2015.08.25 22:21:
>
>> There's no good default setting here. It depends on your userdb
settings and/or mail_uid setting. So for example if your imap processes are
running as vmail user, you should set service imap-hibernate { unix_listener
imap-hibernate { user = vmail } }. Then again if you are using system users (or
otherwise multiple UIDs) it gets more difficult to implement this securely
(mode=0666 works always, but security isn't too good). This same problem
exists for various other parts of Dovecot, for example indexer-worker and dict
services.
>
> I have it working (I guess) with these user settings (virtual users using
'vmail'):
>
> service imap-hibernate {
>   unix_listener imap-hibernate {
>     user = vmail
>   }
> }
>
> I had to assign the imap-master socket the user the imap-hibernate process
is using to avoid messages like this:
>
> Aug 25 23:16:02 nihlus dovecot: imap-hibernate(tlx at leuxner.net): Error:
net_connect_unix(/var/run/dovecot/imap-master) failed: Permission denied
> Aug 25 23:16:02 nihlus dovecot: imap-hibernate(tlx at leuxner.net): Failed
to connect to master socket in=126 out=944 hdr=0 body=0 del=0 exp=0 trash=0
>
> service imap {
>   unix_listener imap-master {
>     user = dovecot
>   }
> }
>
> With this I see messages like this in the logs:
>
> Aug 26 09:48:06 nihlus dovecot: imap-hibernate(tlx at leuxner.net):
Connection closed in=189 out=4252 hdr=0 body=0 del=0 exp=0 trash=0
> Aug 26 12:20:29 nihlus dovecot: imap-hibernate(tlx at leuxner.net):
Connection closed in=109 out=4714 hdr=0 body=0 del=0 exp=0 trash=0
>
> I'm a bit puzzled as to when hibernate actually kicks in because most
of the time I see normal imap processes running without them being hibernated:
Did you specify a value other than zero for 'imap_hibernate_timeout'?

br,
Teemu

> $ ps aux | grep dovecot/imap
> dovenull  6791  0.0  0.0  18196  4772 ?        S    06:39   0:00
dovecot/imap-login
> dovenull  7107  0.0  0.0  18196  4736 ?        S    08:00   0:00
dovecot/imap-login
> dovenull  7112  0.0  0.0  18332  4492 ?        S    08:00   0:00
dovecot/imap-login
> dovenull  7333  0.0  0.0  18332  4772 ?        S    08:45   0:00
dovecot/imap-login
> dovenull  7675  0.0  0.0  18196  4628 ?        S    10:13   0:00
dovecot/imap-login
> dovenull  7677  0.0  0.0  18332  4532 ?        S    10:14   0:00
dovecot/imap-login
> dovenull  7821  0.0  0.0  18196  4532 ?        S    10:44   0:00
dovecot/imap-login
> dovenull  8156  0.0  0.0  18196  4756 ?        S    12:01   0:00
dovecot/imap-login
> vmail     8157  0.0  0.0  45624  9608 ?        S    12:01   0:00
dovecot/imap
> dovenull  8158  0.0  0.0  18332  4628 ?        S    12:01   0:00
dovecot/imap-login
> vmail     8159  0.0  0.0  44772  9256 ?        S    12:01   0:00
dovecot/imap
> dovenull  8160  0.0  0.0  18196  4652 ?        S    12:01   0:00
dovecot/imap-login
> vmail     8161  0.0  0.0  46072  9760 ?        S    12:01   0:00
dovecot/imap
> dovenull  8162  0.0  0.0  18196  4548 ?        S    12:01   0:00
dovecot/imap-login
> dovenull  8279  0.0  0.0  18332  4736 ?        S    12:22   0:00
dovecot/imap-login
> vmail     8280  0.0  0.0  40712  5164 ?        S    12:22   0:00
dovecot/imap
> dovenull  8341  0.0  0.0  18196  4740 ?        S    12:25   0:00
dovecot/imap-login
> vmail     8344  0.0  0.0  46312 10568 ?        S    12:25   0:00
dovecot/imap
>