runbook: cron n8n orphelin (ingestion continue) cause reelle instabilite hermes-mail-browser
This commit is contained in:
@@ -0,0 +1,77 @@
|
|||||||
|
# Cron n8n orphelin (ingestion continue nyora-notes-tt) : boucle infinie sur folders error_409/404, cause reelle de la lenteur hermes-mail-browser
|
||||||
|
|
||||||
|
**Instance auteur** : hermes-tt
|
||||||
|
**Date** : 2026-08-02
|
||||||
|
**Tags** : n8n, hermes-mail-browser, nyora-notes-tt, cron, stabilite
|
||||||
|
**Statut** : valide
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Probleme
|
||||||
|
|
||||||
|
hermes-mail-browser semblait instable/lent (deja documente hier : 20/21 timeouts sur /search
|
||||||
|
profonds). Aujourd'hui, un test de telechargement de PJ a semble bloquer 3+ minutes sur un
|
||||||
|
simple /search. Diagnostic initial : suspicion de probleme structurel OWA/Playwright.
|
||||||
|
|
||||||
|
## Diagnostic reel
|
||||||
|
|
||||||
|
Les logs `docker logs hermes-mail-browser` montrent un appel `GET /search?q=*&folder_path=00
|
||||||
|
2026|Divers` **toutes les 10 minutes, exactement**, depuis le 31/07 (source IP 172.27.0.34 =
|
||||||
|
nyora-notes-tt). 292 occurrences. `n8n:search_executions` sur le workflow correspondant
|
||||||
|
(`Hovzm2wTOOJFxzpb`, "nyora-notes-tt -- Ingestion continue") confirme : 292 executions, toutes
|
||||||
|
marquees "success" (le noeud HTTP a `neverError:true`, donc un 409 ne fait pas echouer
|
||||||
|
l'execution n8n -- invisible dans le monitoring standard).
|
||||||
|
|
||||||
|
Le workflow : `Planification continue (10 min)` -> `GET /pending-folders?limit=1` ->
|
||||||
|
`POST /ingest` sur le dossier recupere. Conçu pour "s'arreter seul quand tout est done" --
|
||||||
|
mais les statuts `error_409` (5 dossiers, doublons ambigus) et `error_404` (dossiers vides
|
||||||
|
confirmes) sont des **etats finaux legitimes**, jamais retraitables avec succes. Le dossier
|
||||||
|
"00 2026|Divers" (error_409) revient donc systematiquement en tete de `/pending-folders`,
|
||||||
|
le workflow le re-ingere en boucle, obtient un 409, ne progresse jamais -- la condition
|
||||||
|
d'arret ("plus rien en pending/error") ne se declenche donc jamais non plus.
|
||||||
|
|
||||||
|
Consequence : contention reguliere (toutes les 10 min, ~10-90s par execution) sur la page
|
||||||
|
Playwright partagee de hermes-mail-browser, pour un travail strictement inutile.
|
||||||
|
|
||||||
|
## Ce qui n'etait PAS la cause (verifie, pour eviter de re-chasser cette piste)
|
||||||
|
|
||||||
|
| Hypothese | Verification | Resultat |
|
||||||
|
|-----------|--------------|----------|
|
||||||
|
| Fuite memoire Chromium / ressources hermes-mail-browser | `docker stats` | 1 Go RAM / 19 Go, CPU ~0%, uptime 8h -- sain |
|
||||||
|
| /search reellement bloque/casse | Test instrumente (`-u`, timing explicite) apres arret du cron | search ~35s, list_attachments ~10-15s/message -- conforme aux baselines deja documentees (mail-o365-search-pas-de-filtre-date.md) |
|
||||||
|
| Le "blocage" de 3 min pendant le test PJ | Logs serveur hermes-mail-browser au meme timestamp | La requete a bien progresse (200 OK x8), c'etait un faux positif cote client (stdout bufferise sur pipe ssh/docker exec sans `-u`, aucune visibilite temps reel) |
|
||||||
|
|
||||||
|
## Solution validee
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Identifier le workflow via n8n MCP : search_workflows puis get_workflow_details
|
||||||
|
# Desactiver :
|
||||||
|
n8n:unpublish_workflow(workflowId="Hovzm2wTOOJFxzpb")
|
||||||
|
```
|
||||||
|
|
||||||
|
Verification : plus aucune ligne `172.27.0.34` recurrente a intervalle de 10 min dans les
|
||||||
|
logs hermes-mail-browser apres desactivation.
|
||||||
|
|
||||||
|
## Piege generique a retenir
|
||||||
|
|
||||||
|
Toute boucle n8n avec condition d'arret "automatique" basee sur un etat DB (type
|
||||||
|
`/pending-folders` jusqu'a vide) doit garantir une VRAIE terminaison, pas juste supposer que
|
||||||
|
la source se tarira. Un statut d'erreur "final" (409 ambigu, 404 confirme vide) n'est pas
|
||||||
|
la meme chose qu'un statut "en attente de retry" -- si le endpoint source ne distingue pas
|
||||||
|
les deux, la boucle ne se videra jamais. Corollaire : `neverError:true` sur un noeud HTTP
|
||||||
|
masque ce genre de boucle inutile dans le monitoring n8n standard (toutes les executions
|
||||||
|
semblent "success") -- verifier le CONTENU des reponses, pas seulement le statut d'execution,
|
||||||
|
pour tout workflow recurrent cense s'auto-arreter.
|
||||||
|
|
||||||
|
Avant de blamer un service externe (ici hermes-mail-browser/OWA) pour de la lenteur ou de
|
||||||
|
l'instabilite persistante, verifier D'ABORD s'il existe un consommateur interne recurrent
|
||||||
|
(cron n8n, watchdog, boucle de retry) qui genere du bruit de fond -- `docker logs` filtre par
|
||||||
|
IP source est souvent le moyen le plus rapide de le confirmer ou de l'ecarter.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- `hermes-tt/mail-o365-search-pas-de-filtre-date.md` (30/07/2026) -- baseline timing /search deja mesuree (~35-40s/appel)
|
||||||
|
- `hermes-tt/nyora-notes-tt-backup-wal-moteur-mixte.md` (02/08/2026) -- incident precedent du meme jour, meme famille de lecon (verifier le comportement reel avant de blamer l'infra sous-jacente)
|
||||||
|
- Workflow n8n `Hovzm2wTOOJFxzpb` (desactive, pas supprime -- conserve pour historique)
|
||||||
Reference in New Issue
Block a user