Comment: Au secouuuuuuuuuuurs ... envoi d'articles par mail ....
| << Previous |
Ok, je viens de comprendre le problème, parce que j'ai fait un essai similaire au tien sur yetanother... et un clone de mon message a été créé toutes les dix minutes sur le serveur pendant quelques jours.
Après analyse, il s'avère que le script
A l'origine, il s'agissait de s'assurer que les articles étaient bien créés avant de purger la file des messages.
Le problème, c'est que si un bogue fait planter le script juste au moment de la création de la page, le message reste dans la mémoire du serveur de messagerie, et est utilisé de nouveau à chaque lancement périodique du script
Pour corriger le tir, j'ai modifié en urgence le comportement du script
Ainsi, même s'il y a un bogue dans le traitement de création des articles, il n'engendrera pas de clones intempestifs.
Le patch à réaliser est de déplacer dans le script
Un couper-coller des lignes 800 à 806 vers la ligne 815 fait tout à fait l'affaire. Pour faciliter l'affaire, je joins un fichier modifié valable pour la version 8.1.
20080207-patch-agents.tgz
Après analyse, il s'avère que le script
agents/messages.php procède comme suit :- connexion au serveur de messagerie
- récupération d'un message
- transformation en article
- suppression du message de la file d'attente
A l'origine, il s'agissait de s'assurer que les articles étaient bien créés avant de purger la file des messages.
Le problème, c'est que si un bogue fait planter le script juste au moment de la création de la page, le message reste dans la mémoire du serveur de messagerie, et est utilisé de nouveau à chaque lancement périodique du script
agents/messages.php. D'où les clones que nous avons expérimenté à l'insu de notre plein gré.Pour corriger le tir, j'ai modifié en urgence le comportement du script
agents/messages.php comme suit :- connexion au serveur de messagerie
- récupération d'un message
- suppression du message de la file d'attente
- transformation en article
Ainsi, même s'il y a un bogue dans le traitement de création des articles, il n'engendrera pas de clones intempestifs.
Le patch à réaliser est de déplacer dans le script
agents/messages.php les lignes suivantes :// file the message if in debug mode
if(($context['debug_messages'] == 'Y') &&
Safe::make_path('temporary/agents'))
Safe::file_put_contents('temporary/agents/'.uniqid('message_'), $message);
// process the message
Messages::process_entity(NULL, $message);
Un couper-coller des lignes 800 à 806 vers la ligne 815 fait tout à fait l'affaire. Pour faciliter l'affaire, je joins un fichier modifié valable pour la version 8.1.
20080207-patch-agents.tgz
by Bernard on Feb. 7