[BUG] doveadm kick doesn't play well with hibernate

Christian Balzer chibi at gol.com
Mon May 15 04:16:13 EEST 2017


On Sun, 14 May 2017 23:34:39 +0300 Timo Sirainen wrote:

> On 12 May 2017, at 5.14, Christian Balzer <chibi at gol.com> wrote:
> > 
> > 
> > Hello,
> > 
> > Dovecot 2.2.27 (Debian Jessie backports).
> > 
> > When issuing a "doveadm kick" for a specific user I was greeted by:
> > ---
> > "warning: other connections would also be kicked from following users:"
> > ---
> > and a list of 22odd thousand users.
> > 
> > As it turns out, kick wants to smack the hibernation proces(ses) that
> > have hibernated sessions for this user, obviously the wrong approach here.  
> 
> Kicking in backends works by sending a signal to the mail processes. It would be nice to support other ways also, but that would require larger changes.
> 
It's probably something you'll need to address sooner or later, given that
I'm pretty sure that kick isn't the only thing assuming (wrongly) that
there's just one user per mail process. 

> > If there's doveadm command to wake up and thus un-hibernate sessions for a
> > specific user this could be used as a workaround but a quick glance
> > suggest no such thing.   
> 
> If you change the dovecot.index.log of any of the folders where the user is IDLEing, that'd do it. I think just find /user 'dovecot.index.log' | xargs touch would work.
> 
That doesn't work for me at all.

Before and after touching the dovecot.index.log files:
---
# ps aux |grep chibi
mail      884727  0.0  0.0  24360  9176 ?        S    May14   0:00 dovecot/imap [chibi at notgol.com xxx.xxx.7.126 IDLE]

# doveadm who |grep chibi
username           # proto (pids)                       (ips)                     
chibi at notgol.com   8 imap (884727 877825 119157)       (xxx.xxx.7.126 xxx.xxx.0.144 xxx.xxx.244.134)

# ps aux |grep hibernate
dovecot   119157  0.3  0.0  63448 56372 ?        S    Apr01 247:20 dovecot/imap-hibernate [16361 connections]
dovecot   877825  0.3  0.0  61776 54628 ?        S    Apr23 115:39 dovecot/imap-hibernate [10098 connections]
---

Note that I have "maildir_very_dirty_syncs = yes" set, but that shouldn't
cause this based on the comment in the config blob. 

> > This functionality is absolutely crucial for us as we need this for our
> > custom mailbox migration functionality.
> > 
> > If there's no workaround or fix within 2 months I'll be forced to disable
> > hibernation again (with a heavy heart).  
> 
> How about doveadm director kick / doveadm proxy kick?
> 
Just proxy here. 
While that would work, it would require of course new code connecting to
the proxies (maintain a list as well) in sequence. 
Something that doesn't scale too well, since we aim to keep the mailboxes
in a locked state for as short as possible.

OTOH if the "waking up" part above can't be made to work, I guess this is
at least a way forward for the time being. 

Christian
-- 
Christian Balzer        Network/Systems Engineer                
chibi at gol.com   	Global OnLine Japan/Rakuten Communications
http://www.gol.com/


More information about the dovecot mailing list