Google PlusFacebookTwitter

Too many IMAP sessions, closing ImapSession

By on Sep 21, 2013 in Zimbra | 0 comments

Share On GoogleShare On FacebookShare On Twitter

Mais pourquoi mon client IMAP timeout !!

Ahhhh (ceci est un soupir de béatitude), quelle belle journée ! Le soleil brille, les oiseaux chantent, la soirée fut arrosée et un poil charnelle. Ce matin personne dans les transports, une place assise vous tend les bras, wwwooowww que la journée commence bien, ça ne peut que s’améliorer !

Une fois assis(e) à votre poste et connecté(e), vous ouvrez comme à votre habitude votre client mail préféré mais là c’est la drame ! La récupération des messages mouline, c’est long, très long… quand tout à coup un splendide message d’erreur vous indique que votre client est timeout !  😆 (oui je suis un sadique)

La cause de ce désarroi

Dans les logs Zimbra le message « Too many IMAP sessions, closing ImapSession » fait son apparition, il signifie que le nombre de session maximales par utilisateur a été atteint. Par défaut Zimbra définit la valeur maximale à 5 sessions par utilisateur, c’est peu mais souvent suffisant quand la boîte mail est personnelle mais quand c’est une boîte de type support accédée par plusieurs personnes cela devient insuffisant.

# su - zimbra
$ tail -f /opt/zimbra/log/mailbox.log | grep "Too many IMAP"

Résultat :

2013-09-20 16:14:47,946 INFO [ImapSSLServer-2114] [name=support@incloudus.com;ip=82.91.186.134;ua=Thunderbird/17.0.8;] session - Too many IMAP sessions, closing ImapSession{sessionId=260203, accountId=99c6f31c-acc5-48b2-b57e-bb5ca592e2dc, lastAccessed=2013-09-20 16:14:06,902}
2013-09-20 16:14:56,049 INFO [ImapSSLServer-1907] [name=support@incloudus.com;ip=80.91.211.33;ua=Thunderbird/17.0.8;] session - Too many IMAP sessions, closing ImapSession{sessionId=260224, accountId=99c6f31c-acc5-48b2-b57e-bb5ca592e2dc, lastAccessed=2013-09-20 16:14:17,411}
2013-09-20 16:14:56,496 INFO [ImapSSLServer-2105] [name=support@incloudus.com;ua=iPhone Mail/8J2;] session - Too many IMAP sessions, closing ImapSession{sessionId=260251, accountId=99c6f31c-acc5-48b2-b57e-bb5ca592e2dc, lastAccessed=2013-09-20 16:14:31,812}

L’antidote

La solution est simple, elle consiste à augmenter le nombre de session IMAP par utilisateur. Si le nombre de session doit être augmenté cela peut vouloir dire que le nombre d’utilisateur a augmenté, il convient donc de vérifier certains paramètres liés à l’IMAP.

Dans notre cas le nombre de threads maximal est de 2000.

$ zmprov gs mx01.incloudus.com | grep ImapNumThreads

Résultat :

zimbraImapNumThreads: 2000

En listant les connections actives on peut voir que la limite est loin d’être atteinte.

$ netstat -ant | egrep "993|143" | wc -l

Résultat :

1065

Pour solutionner notre problème il suffit d’augmenter le nombre de session IMAP par utilisateur en modifiant la valeur zimbra_session_limit_imap

$ zmlocalconfig -i zimbra_session_limit_imap

Résultat :

zimbra_session_limit_imap:
Maximum number of IMAP folders a single user can have open at once
* Changes are in effect after server restart.

Vérification de la valeur actuelle :

$ zmlocalconfig zimbra_session_limit_imap

Résultat :

zimbra_session_limit_imap = 5

Augmentation du nombre de session IMAP par utilisateur

$ zmlocalconfig -e zimbra_session_limit_imap=15

Vérification :

$ zmlocalconfig zimbra_session_limit_imap

Résultat :

zimbra_session_limit_imap = 15

Pour que le changement soit pris en charge il est nécessaire que Zimbra soit relancé.

$ zmcontrol restart

Résultat :

Host mx01.incloudus.com
   Stopping vmware-ha...Done.
   Stopping zmconfigd...Done.
   Stopping stats...Done.
   Stopping mta...Done.
   Stopping spell...Done.
   Stopping snmp...Done.
   Stopping cbpolicyd...Done.
   Stopping archiving...Done.
   Stopping opendkim...Done.
   Stopping antivirus...Done.
   Stopping antispam...Done.
   Stopping proxy...Done.
   Stopping memcached...Done.
   Stopping mailbox...Done.
   Stopping convertd...Done.
   Stopping logger...Done.
   Stopping ldap...Done.
Host mx01.incloudus.com
   Starting ldap...Done.
   Starting zmconfigd...Done.
   Starting logger...Done.
   Starting convertd...Done.
   Starting mailbox...Done.
   Starting antispam...Done.
   Starting antivirus...Done.
   Starting opendkim...Done.
   Starting snmp...Done.
   Starting spell...Done.
   Starting mta...Done.
   Starting stats...Done.

Une fois Zimbra relancé, on peut vérifier que tous les services soient bien démarrés.

$ zmcontrol status

Résultat :

Host mx01.incloudus.com
   antispam Running
   antivirus Running
   convertd Running
   ldap Running
   logger Running
   mailbox Running
   mta Running
   opendkim Running
   snmp Running
   spell Running
   stats Running
   zmconfigd Running

En théorie le message d’erreur a du disparaître des logs, si ce n’est pas le cas c’est que le nombre de session n’est pas encore assez élevé.

The following two tabs change content below.

Gaëtan Trellu (goldyfruit)

Technical Operation Manager chez Ormuco
Autodidacte en informatique, depuis 2005 je parcours l’écosystème Unix à la recherche de nouvelles connaissances et de nouvelles rencontres.

CC BY 4.0 Too many IMAP sessions, closing ImapSession par Gaëtan Trellu (goldyfruit) est sous Licence Creative Commons Internationale Attribution 4.0.