On Thursday, 28. July 2016 17:16:03 Carlos Velasco via Cyrus-devel wrote: > Looking into idled.c from v2.5.8 there is a timeout: > > /* Set inactivity timer (convert from minutes to seconds) */ > idle_timeout = config_getint(IMAPOPT_TIMEOUT); > if (idle_timeout < 30) idle_timeout = 30; > idle_timeout *= 60; > ... > case IDLE_MSG_NOTIFY: > ... > /* send a message to all clients idling on mboxname */ > t = (struct ientry *) hash_lookup(msg->mboxname, &itable); > for ( ; t ; t = n) { > n = t->next; > if ((t->itime + idle_timeout) < time(NULL)) { > /* This process has been idling for longer than the > timeout * period, so it probably died. Remove it from the list. */ > if (verbose || debugmode) > syslog(LOG_DEBUG, " TIMEOUT %s\n", > idle_id_from_addr(&t->remote)); > > remove_ientry(msg->mboxname, &t->remote);
yes, we run idled. I think that might be the problem here, the expire of idle clients is done only if there is activity in the folder. The clients that were idling for two weeks were doing it on the INBOX/Drafts folder. So that's probably an area that needs improvement in idled. @Bron: What about a "global" timeout check in the main loop of idled ever XX minutes? Cheers, Thomas