Aller au contenu principal

Outlook : Diagnostiquer les problèmes

Cette page a pour but de vous aider à investiguer, diagnostiquer et résoudre les problèmes rencontrés lors de l'utilisation d'Outlook avec BlueMind.

Premiers réflexes

  1. Vérifier l'état des serveurs BlueMind avec la commande bm-cli node status.

  2. Consulter la page de compatibilité afin de vérifier que la version d'Outlook est supportée, cette page rend aussi compte de limitations connues.

  3. Vérifier que la configuration du poste est correcte.

  4. Vérifier que la configuration du compte est correcte et respecte les prérequis.

Verifier la liste des compléments Outlook

Certains compléments (ou add-ins) Outlook, notamment les anti-virus, ajoutent des propriétés personnalisées sur les messages. Pour des raisons de performance, BlueMind n'est pas encore capable de les prendre en charge.

Vérifiez la liste des compléments installés et tentez de reproduire le problème en désactivant tous les compléments ne provenant pas de l'éditeur "Microsoft Corporation".

attention

La désactivation d'un complément ne retire pas les propriétés personnalisées qu'il a posées : même désactivé, il peut continuer à causer problème.
Il est donc important d'informer le support de leur présence lors de l'ouverture d'un ticket.

Accès au panneau de gestion des compléments Outlook
  • Cliquer sur "Fichier" dans le bandeau Outlook.
  • Cliquer sur "Options".
  • Dans la fenêtre qui s'ouvre, aller dans la catégorie "Compléments".

Vérifier l'état de la réplication

BlueMind utilise un système de réplication afin que les informations contenues dans la base de données PostgreSQL correspondent à celles contenues dans Cyrus. Ce système est assuré par 4 instances du service bm-cyrus-syncclient@.service numérotées de 0 à 3.

1 - Vérifier l'état de la réplication

Les fichiers de travail des processus de réplication sont situés dans le dossier /var/lib/cyrus/sync/core/.

Ils sont nommés log.X et log.X-run.X (où X correspond au numéro de l'instance).

Des fichiers de travail datant de plus d'une minute indiquent que la réplication est en erreur.
La commande suivante permet de trouver ces fichiers :

find /var/lib/cyrus/sync/core -mmin "+1" -type f
Exemple de sortie de la commande
/var/lib/cyrus/sync/core/log.3
/var/lib/cyrus/sync/core/log.3-run.3

Dans cet exemple, on remarque que l'instance numéro 3 est en erreur.

astuce

Si cette commande ne retourne rien, la réplication est fonctionnelle.

2 - Trouver le compte bloquant la réplication

Consulter les logs de l'instance du service de réplication en erreur avec la commande suivante :

systemctl status bm-cyrus-syncclient@3.service
Exemple de sortie de la commande
root@BM:/var/lib/cyrus/sync/core# systemctl status bm-cyrus-syncclient@3.service 
● bm-cyrus-syncclient@3.service - BlueMind Cyrus sync_client service
   Loaded: loaded (/lib/systemd/system/bm-cyrus-syncclient@.service; indirect; vendor preset: enabled)
   Active: active (running) since Tue 2023-03-14 12:50:29 CET; 1 day 22h ago
  Process: 220689 ExecStart=/usr/sbin/sync_client -C $CONF -t 1800 -n core -i 3 -l -r (code=exited, status=0/SUCCESS)
  Process: 220682 ExecStartPre=/bin/rm -f /var/lib/cyrus/sync/core/log.3 /var/lib/cyrus/sync/core/log.3-run.3 (code=exited, status=0/SUCCESS)
 Main PID: 220696 (sync_client)
    Tasks: 1 (limit: 14273)
   CGroup: /system.slice/system-bm\x2dcyrus\x2dsyncclient.slice/bm-cyrus-syncclient@3.service
           └─220696 /usr/sbin/sync_client -C /etc/imapd.conf -t 1800 -n core -i 3 -l -r
Mar 16 10:53:58 BM cyrus/sync_client[220696]: Reprocessing sync log file /var/lib/cyrus/sync/core/log.3-run.3
Mar 16 10:53:58 BM cyrus/sync_client[220696]: MAILBOXES example.com!user.j^doe.Carte GO example.com!user.j^doe.restored-2022-07-20.CV AUTRES example.com!user.j^doe.CV AUTR
Mar 16 10:53:58 BM cyrus/sync_client[220696]: RENAME example.com!user.j^doe.CV AUTRES -> example.com!user.j^doe.restored-2022-07-20.CV AUTRES (2297b864-eacc-481b-9671-5742860c853b__
Mar 16 10:53:58 BM cyrus/sync_client[220696]: inefficient replication (11644154 > 11638277) example.com!user.j^doe.CV AUTRES
Mar 16 10:53:58 BM cyrus/sync_client[220696]: FULLMAILBOX example.com!user.j^doe.CV AUTRES
Mar 16 10:53:58 BM cyrus/sync_client[220696]: do_folders(): update failed: example.com!user.j^doe.CV AUTRES 'Mailbox does not exist'
Mar 16 10:53:58 BM cyrus/sync_client[220696]:   Promoting: MAILBOX example.com!user.j^doe.Carte GO -> USER j.doe@example.com
Mar 16 10:53:58 BM cyrus/sync_client[220696]:   Promoting: MAILBOX example.com!user.j^doe.restored-2022-07-20.CV AUTRES -> USER j.doe@example.com
Mar 16 10:53:58 BM cyrus/sync_client[220696]:   Promoting: MAILBOX example.com!user.j^doe.CV AUTRES -> USER j.doe@example.com
Mar 16 10:53:58 BM cyrus/sync_client[220696]: USER j.doe@example.com
Mar 16 10:53:58 BM cyrus/sync_client[220696]: RENAME example.com!user.j^doe.restored-2022-07-20.CV AUTRES -> example.com!user.j^doe.CV AUTRES (2297b864-eacc-481b-9671-5742860c853b__
Mar 16 10:53:59 BM cyrus/sync_client[220696]: inefficient replication (11644154 > 11638277) example.com!user.j^doe.CV AUTRES
Mar 16 10:53:59 BM cyrus/sync_client[220696]: FULLMAILBOX example.com!user.j^doe.CV AUTRES
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 114 (0c8e82a09cfe82a770e48eb4321cc3c29b2cfde0 de32aec2213d7093da963f301fde610dc19c9a02)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 115 (517646181c3d94de49cd3e7b8c33c9c1aa131f47 8a6f81846342c42367ef64886331bf5216ef0330)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 116 (d1ef2cf5a1978890df0b3355537c4af7c2fbfcde 48a12c30a6359e3f336e6be6b2884b51c30e3ae1)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 117 (7e6a83800957eca69e94fd6fb03e08674953512e 62614ec2601c4d07af3157c192b8a269858d0d8f)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 118 (122d448ed459265af03a0fc59d0f07ab452bfcc7 cafaf4673d8219f099815375f9faef2abebf77d1)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 120 (3ac582acc799e2e33ece5b2acf6848efc1ec73ea 4f76ad524b6aad91f0aa6cedfda9776cde2014db)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 122 (f1fe64c1d25a7cbd6c74a3d45163408744fa8b6a 1c8dc6557d946f99163162d86543b0c427e2d14e)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 123 (030e959652187f58b82a64cc36e9ba7a6c524571 80b58ae2f530f79b99539a320f3c050fec28ff65)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 124 (7969406687e78b48b1d2558e328c5567a06bf7e4 0e9c37cedfc170fbb4f81a2ca828fddbad74aff2)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 126 (64b028612c255899d2fb63e395d5ebabce4f52ac 1e9d910b531e293d9bef36e0bbe207dfdb6e9a06)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 127 (343a2dc177da6927a2a4ebe005cc8158aeaedf46 5f407a164c119e6b7be7ef8e001281479212d9e6)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 136 (59e7d134778a1c90c6d2a782e6cca0b90d0bceb7 6448e1101d92ae1801ffe5995fb9158398490a89)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 143 (572ff635e539030b87001d1c61f0fe0fd420d14e a0cfb575fdcb40f749f44637870bd53eac98884b)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 145 (2ffb04bae87d199d65569c896ea116364b93f068 d88fc3a93f62249e45a9315b52fd18054627471d)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 147 (1c4418291987df9a7e99cd38906fd30da44fd223 f9d3777f2209df613a5df194069b7be7ebca0b45)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 148 (ce9b58e21b4deae19976a92d207393edfd40524b 2077933c9f581519034901046c3eeade289d346f)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 150 (35988709129ae017eb30ea0be7ce228b7271ef2d 35e3fd1bdd33652deeefc462a6b63c13b6813c93)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 151 (b263739cc9542a1b52565ba91f9f5448fdb50561 b21f7203c0693a552cd078871aa4dd794bd76287)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 152 (2f66b43d68e9abd9f3cb99b90fe49dd81745f734 d12ce196ec382560f3ae551d770edfbe7e1d5d05)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 153 (9a76d23d68fec1b516655f14c131f9b8d2f39581 8cb2ded43dd0389125728775187eb1a2fdbf235e)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 154 (770946ca887063307e5313ffbf5e5ec1b8a07afc 9340cd74f8692158fc726d764704c822285b4cd3)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 155 (80dc85f5f2d35d0bffaa5388e81192a43bb7172d bc461f163b9b10e1d7c38b0e73ab3d6d08b134cd)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 156 (ad3b4427bf85c201c0aedbdd837a664321d2b9a7 fd388a51392bd6f77a1603638bb5f3b7c8a58a5a)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 168 (7cf54da65978685227fda0f56e61091da7c8c98e 5a54034204ae9bdc861bfbf1dc5aeeeac014acf6)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 169 (e70bed4eddce36a5c7b79adf85c172d1ab19c67c a2c45c34162049c82b69ea537a7df87372384127)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCERROR: guid mismatch example.com!user.j^doe.CV AUTRES 170 (1ac2fc5f433f5ac27ecf4491591e65af48fd9fac 71471afd3b8f17865ef9da3af5d4cec66f554113)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: IOERROR: fetch_file GUID MISMATCH Mailbox does not exist
Mar 16 10:53:59 BM cyrus/sync_client[220696]: SYNCNOTICE: failed to prepare update for example.com!user.j^doe.CV AUTRES: System I/O error
Mar 16 10:53:59 BM cyrus/sync_client[220696]: do_folders(): update failed: example.com!user.j^doe.CV AUTRES 'System I/O error'
Mar 16 10:53:59 BM cyrus/sync_client[220696]: IOERROR: do_user_main: System I/O error for j.doe@example.com to core (172.31.1.50)
Mar 16 10:53:59 BM cyrus/sync_client[220696]: Error in do_sync(): bailing out! System I/O error

Dans cet exemple, c'est le dossier CV AUTRES de l'utilisateur jdoe@example.com qui bloque la synchronisation.

3 - Réparer le compte

La commande bm-cli suivante permet de réparer le compte bloquant la réplication :

 bm-cli maintenance repair jdoe@example.com
Exemple de sortie de la commande
root@BM:/var/lib/cyrus/sync/core# bm-cli maintenance repair --ops replication.subtree,replication.parentUid,flat.hierarchy jdoe@example.com
Selected ops: [replication.parentUid, flat.hierarchy, replication.subtree]
[jdoe@example.com (5A2EFFAE-EE14-470C-9147-EBEC7AFEC872)] 
Global progress 1/1 (100%)
4 - Relancer la réplication

Relancer l'instance bloquée du service de réplication :

systemctl restart bm-cyrus-syncclient@3.service 

Attendre 5 minutes, puis vérifier que la réplication fonctionne correctement avec la méthode décrite dans l'étape 1.

Lecture des logs

Journaux coté client (Outlook)

Dans Outlook, les erreurs de synchronisation se présentent sous forme d'e-mails situés dans le dossier "Problèmes de synchronisation".

Accès au dossier "Problèmes de synchronisation" dans Outlook :
  • Ouvrir l'application "Dossiers"
    Ouverture de l'application "Dossiers" d'Outlook
  • Ouvrir le dossier "Problèmes de synchronisations"
    Dossier "Problèmes de synchronisation"

Journaux coté serveur (BlueMind)

Sur le serveur BlueMind, les fichiers de logs à consulter sont ceux des composants MAPI et BlueMind Core.

Méthodologie de lecture des logs

1 - Repérer les erreurs grâce au fichier requests.log

Le fichier requests.log contient les traces des requêtes MAPI, une par ligne.

Anatomie d'une ligne du fichier requests.log
2023-05-10 12:52:20,789 [vert.x-eventloop-thread-5] n.b.v.c.r.i.WrappedResponse INFO - [user: jdoe@ad1547b5.internal, type: Execute, id: 125097454, ctx: 69417e3e-63e1-4c24-9df1-1d4a0e2d804b, size: 95, rops: [RopRelease(Attachment,id: 32597139),RopSetProperties,RopModifyRecipients,RopSetProperties,RopSaveChangesMessage(failure GeneralFailure),RopGetPropertiesSpecific], http.out: 200] completed in 3935ms.
↳[date] ↳[heure] ↳[utilisateur MAPI] [Type d'opération]↲ [Erreur]↲ ↳[Type d'erreur] ↳[Code HTTP] ↳[Durée de la requête]
Astuces pour la lecture du fichier
  • Les erreurs du type IgnoreFailure peuvent être ignorées.
  • Voici une commande pour lister les erreur liées a un utilisateur spécifique (ici jdoe) :
grep "jdoe@" /var/log/bm-mapi/requests.log | grep -Ei "failure|responseCode: 1|aborted" | grep -v "IgnoreFailure"
2 - Obtenir des détails sur les erreurs grâce au fichier mapi.log

Le fichier mapi.log contient les logs détaillés du service MAPI (bm-mapi.service).

Pour obtenir le détail des requêtes en erreur trouvées à l'étape précédente :

  • Ouvrir mapi.log une ou deux secondes avant l'heure de la requête.
  • Descendre jusqu'à trouver une erreur (ERROR) correspondant au type de la requête.
Exemple d'erreur dans /var/log/bm-mapi/mapi.log
2023-05-10 12:52:20,788 [vert.x-worker-thread-2] n.b.e.m.e.e.RopSaveChangesMessage ERROR - Fail to save message MessageChangeResult
[Type d'opération]↲ ↳[Description de l'erreur]
net.bluemind.exchange.ese.StorageRuntimeException: net.bluemind.core.api.fault.ServerFault: net.bluemind.imap.IMAPRuntimeException: Not connected to server.
↳[Cause de l'erreur]
at net.bluemind.exchange.provider.core.impl.FolderContentSink.add(FolderContentSink.java:154)
at net.bluemind.exchange.ese.Folder.add(Folder.java:506)
at net.bluemind.exchange.mapi.emsmdb.execute.RopSaveChangesMessage.saveMessageChangeResult(RopSaveChangesMessage.java:240)
at net.bluemind.exchange.mapi.emsmdb.execute.RopSaveChangesMessage.handleWithDetails(RopSaveChangesMessage.java:107)
at net.bluemind.exchange.mapi.emsmdb.execute.AbstractRopHandler.handleWithDetails(AbstractRopHandler.java:18)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.lambda$4(ExecuteExecutor.java:221)
at com.netflix.spectator.api.SwapTimer.record(SwapTimer.java:53)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.execute(ExecuteExecutor.java:221)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.lambda$0(ExecuteExecutor.java:99)
at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100)
at io.vertx.core.impl.WorkerContext.lambda$emit$0(WorkerContext.java:59)
at io.vertx.core.impl.WorkerContext.lambda$execute$2(WorkerContext.java:104)
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
Caused by: net.bluemind.core.api.fault.ServerFault: net.bluemind.imap.IMAPRuntimeException: Not connected to server.
at net.bluemind.core.rest.base.ClientProxyGenerator$1.invoke(ClientProxyGenerator.java:282)
at com.sun.proxy.$Proxy164.createById(Unknown Source)
3 - Obtenir des détails supplémentaires grâce au fichier core.log

Dans le cas ou les informations obtenues durant l'étape précédente ne sont pas suffisantes, il est possible que des informations supplémentaires se trouvent dans les logs détaillés du Core de BlueMind (bm-core.service).

Chercher d'éventuelles erreurs dans le fichier core.log dans les secondes ou dixièmes de secondes précédant la requête :

Exemple d'erreur dans /var/log/bm/core.log
2023-05-10 12:52:20,773 [BM-Core-15] n.b.i.c.AppendCommand ERROR - [jdoe@ed1757b5.internal] WriteToClosedSession, you should check mail.err (null)
2023-05-10 12:52:20,774 [BM-Core-15] n.b.c.r.b.RestServiceMethodHandler ERROR - Error during restcall RestRequest [path=/api/mail_items/508956df-e33c-4750-88da-8e63a9076b80/id/119321466, method=PUT, User-Agent=AHC/2.1, params=, remoteAddresses=[10.33.95.200, 10.33.95.200], origin=mapi-jdoe@ed1757b5.internal-0c3228d6-a89a-4b4b-8a3b-f944fb3b8c12]: class net.bluemind.core.api.fault.ServerFault: net.bluemind.imap.IMAPRuntimeException: Not connected to server.
at net.bluemind.backend.mail.replica.service.internal.ImapContext.withImapClient(ImapContext.java:171)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createAsync(ImapMailboxRecordsService.java:483)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.create(ImapMailboxRecordsService.java:443)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createById(ImapMailboxRecordsService.java:436)
... 20 common frames omitted
Caused by:
class net.bluemind.imap.IMAPRuntimeException: Not connected to server.
at net.bluemind.imap.impl.ClientSupport.run(ClientSupport.java:234)
at net.bluemind.imap.impl.ClientSupport.append(ClientSupport.java:338)
at net.bluemind.imap.StoreClient.append(StoreClient.java:272)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.lambda$19(ImapMailboxRecordsService.java:501)
at net.bluemind.backend.mail.replica.service.internal.ImapContext.withImapClient(ImapContext.java:161)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createAsync(ImapMailboxRecordsService.java:483)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.create(ImapMailboxRecordsService.java:443)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createById(ImapMailboxRecordsService.java:436)
... 20 common frames omitted
info

Dans cet exemple, la ligne de log nous redirige vers le fichier mail.err pour obtenir plus d'informations.