[P1][markdown] Rendre le transformateur linéaire et coopératif à l’annulation #22

Open
opened 2026-07-31 21:05:13 +00:00 by mathieu · 1 comment
Owner

Constat

Le plugin Markdown concatène répétitivement des strings et ignore pratiquement son contexte (internal/plugin/markdown/markdown.go:42-98, :363-393). Sur des entrées jusqu'à 64 Mio, il peut continuer à consommer CPU/mémoire après le timeout du wrapper.

Tâche

Utiliser strings.Builder, vérifier le contexte dans les boucles parse/render et borner structure et sortie avant allocation. Ne publier la sortie qu'après validation complète.

Critères d'acceptation

  • Temps linéaire en taille entrée+sortie.
  • L'annulation arrête rapidement tout travail Markdown.
  • Les fixtures existantes restent byte-identical.
  • Une limite dépassée déclenche le fallback sans sortie partielle.

Validation

go test -race ./internal/plugin ./internal/plugin/markdown ./internal/textpipe

## Constat Le plugin Markdown concatène répétitivement des strings et ignore pratiquement son contexte (`internal/plugin/markdown/markdown.go:42-98`, `:363-393`). Sur des entrées jusqu'à 64 Mio, il peut continuer à consommer CPU/mémoire après le timeout du wrapper. ## Tâche Utiliser `strings.Builder`, vérifier le contexte dans les boucles parse/render et borner structure et sortie avant allocation. Ne publier la sortie qu'après validation complète. ## Critères d'acceptation - Temps linéaire en taille entrée+sortie. - L'annulation arrête rapidement tout travail Markdown. - Les fixtures existantes restent byte-identical. - Une limite dépassée déclenche le fallback sans sortie partielle. ## Validation `go test -race ./internal/plugin ./internal/plugin/markdown ./internal/textpipe`

Correctif proposé et validé dans la PR #45 : #45.

Correctif proposé et validé dans la PR #45 : https://git.2027a.net/mathieu/murmur/pulls/45.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/murmur#22
No description provided.