Importation de l'erreur « Failed to map post »

J’ai environ 1000 messages en échec lors d’une importation, avec, je pense, l’erreur principale suivante : « Échec de la correspondance du message », comme :

Échec de la correspondance du message pour b9ec0145-e587-c0e2-768d-ad482c3ab928@mmtaylor.net
Méthode hex non définie pour nil:NilClass

Cela semble entraîner l’échec de nombreux autres messages avec des messages d’erreur tels que :

1109 / 65895 ( 1,7 %) [400 éléments/min] Le message parent b9ec0145-e587-c0e2-768d-ad482c3ab928@mmtaylor.net n’existe pas. Ignoré CAKPLMstp+CaTyfFinM-dHHpVxNHt0fy2vXT9Fx+21mE2RT-ijg@mail.gmail.com : Une approche PCT de la « Loi de puissance »

Avez-vous des suggestions pour résoudre ce problème ?

J’ai 28 ans de messages, avec un dossier pour chaque année et un fichier mbox pour chaque mois. Il y a 66 909 messages dans les fichiers mbox. L’importation en affiche 65 895. La différence de 1 014 est-elle due aux échecs indiqués dans la sortie de l’importation ?

Les messages ont été convertis à partir de fichiers mbx Eudora vers des fichiers mbox standards avec Aid4Mail.

Pour l’erreur « Le message parent n’existe pas », je constate 421 occurrences.
Pour l’erreur « Échec de la correspondance du message », je constate 149 occurrences.

Mon expression régulière de découpage (split_regex) est “^From .@. [0-9]{4}”, ce qui semble approprié pour les en-têtes tels que :

De mmt-xxx@somedomain.net Mer 10 août 12:06:53 2016

3 « J'aime »

Aide ! Des suggestions pour ça ? :woozy_face:

J’ai rencontré la même erreur la semaine dernière en travaillant sur un autre problème. Je vais le corriger cette semaine et publier une mise à jour ici une fois le problème résolu.

Ce ne sont que des avertissements et ils apparaissent probablement à cause des erreurs « Échec du mappage du message ». Cela se produit lorsqu’un message fait référence à un message qui n’existe pas. Je suis presque certain que la correction de l’autre problème résoudra la plupart, sinon la totalité, de ces avertissements.

5 « J'aime »

Cette erreur devrait être corrigée par FIX: Email attachments with a size of 0 bytes caused error · discourse/discourse@e84d88d · GitHub

3 « J'aime »

J’ai effectué la mise à jour, reconstruit l’importation, vérifié que receiver.rb avait bien été mis à jour, puis relancé l’importation.

Cela semble avoir résolu plusieurs centaines de messages, merci.

Je rencontre toutefois toujours environ 200 échecs, dus à deux types d’erreurs :

Date manquante. Ignorance de bbe76bf7a9cab5a2ec2a06e6ef453555

Échec du mappage du message pour 23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net
Discourse::InvalidAccess

Ensuite, il y a de nombreux messages du type « Parent n’existe pas », que je suppose être la conséquence des erreurs ci-dessus.

Avez-vous une idée de la cause de ces erreurs ? Pour la première, j’ai examiné le message mbx et je ne vois aucune date manquante.

Vous pouvez jeter un coup d’œil à index.db, la base de données créée par le script d’importation. Il s’agit d’une base de données SQLite3. Vous pouvez exécuter la requête suivante pour voir sur quelles données le analyseur travaille. Elle sélectionne les messages correspondant aux deux Message-ID que vous avez publiés.

SELECT *
FROM email
WHERE msg_id IN ('bbe76bf7a9cab5a2ec2a06e6ef453555', '23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net')

Je suppose que les colonnes email_date et raw_message seront les plus intéressantes pour vous. Peut-être pourrez-vous identifier ce qui perturbe l’analyseur de courriels…

1 « J'aime »

Pour le premier, la date est null, et je constate qu’il n’y a pas de date pour ce message dans le mbx. Je remarque que la réponse (avec :Re) apparaît avant le message « initial », c’est pourquoi je pensais que la date n’était pas manquante. L’importation prend-elle les messages parents comme les premiers du fichier avec ce sujet ?

La date de l’e-mail est-elle extraite de la ligne « Date: », comme ici ?

Date: Wed, 25 Mar 1992 12:23:00 GMT

Je vais voir si je peux réparer ceux dont la date manque.

Pour le second, je ne vois rien d’évidemment incorrect. Cette image donne-t-elle un indice sur le problème ?

Non, il utilise les en-têtes In-Reply-To et References pour faire correspondre et trier par Message-ID, sauf si vous avez modifié le paramètre group_messages_by_subject de l’importateur en true.

Oui.

Ma meilleure hypothèse est qu’il y a un problème avec l’une des pièces jointes. Peut-être que l’extension du fichier n’est pas autorisée ?

1 « J'aime »

J’ai bien défini le paramètre group_messages_by_subject sur true, car sans cela, aucun regroupement n’était effectué.

Ce message contient deux images intégrées :

Content-Type: application/octet-stream;
name=“Conflict (was … long live Wil”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“Conflict (was … long live Wil”

Content-Type: image/jpeg; name=“2.1.3FarmerSideEffectLoop.jpg”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“2.1.3FarmerSideEffectLoop.jpg”

Serait-ce que le premier nom de fichier n’a pas d’extension ?

1 « J'aime »

Pourrais-je résoudre le problème de date en insérant la date dans index.db, plutôt que de fouiller dans le fichier mbx ?

1 « J'aime »

Oui, cela fonctionne. J’ai fait la même chose par le passé. Je vous recommande de définir index_only sur true dans settings.yml, afin qu’il ne commence pas à importer immédiatement après l’indexation des messages. Vous pouvez apporter toutes les modifications nécessaires dans la base de données une fois l’indexation terminée. Ensuite, remettez index_only sur false et redémarrez l’importation.

Je pense que je comprends mal quelque chose ici. L’indexation n’a-t-elle pas déjà été effectuée, puisque index.db est déjà construit ?

J’ai transféré index.db sur mon ordinateur de bureau. Je comptais mettre à jour les dates, puis transférer index.db de nouveau sur le serveur et relancer l’importation. Ce n’est pas la bonne méthode ?

J’ai décidé de modifier les fichiers mbox en ajoutant une ligne « Date », par exemple « Date: Wed, 25 Mar 1992 17:43:06 ». J’ai transféré les fichiers mis à jour et relancé l’importation, à deux reprises. Cependant, le champ email_date n’a pas été mis à jour.

Dois-je supprimer index.db ?

Oui, vous devez le supprimer.

1 « J'aime »