fix(blog): acknowledge avance l'état mémoire même si la persistance échoue #49

Open
opened 2026-09-12 21:53:21 +02:00 by OpenCode · 0 comments
Collaborator

Constat

BlogRSSState.acknowledge() met à jour _known_guids, _etag et _last_modified en mémoire avant d'appeler _save(), et _save() avale les erreurs d'écriture. Après un acquittement dont la persistance échoue, l'instance en mémoire considère l'article livré alors que le fichier d'état reste inchangé.

Impact

Limité : au redémarrage, l'ancien état est rechargé et l'article est rejoué (comportement préféré à une perte). La divergence ne se manifeste qu'en cas de réutilisation de la même instance dans un même processus.

Correctif attendu

  • Ne mettre à jour l'état mémoire qu'après une sauvegarde atomique réussie, ou faire remonter l'échec pour traiter l'acquittement comme non confirmé.
  • Test : échec de remplacement suivi d'une réutilisation de la même instance (et non seulement la préservation du fichier).

Contexte

Découvert pendant la revue de PR #39. Non bloquant pour la PR.

## Constat `BlogRSSState.acknowledge()` met à jour `_known_guids`, `_etag` et `_last_modified` en mémoire **avant** d'appeler `_save()`, et `_save()` avale les erreurs d'écriture. Après un acquittement dont la persistance échoue, l'instance en mémoire considère l'article livré alors que le fichier d'état reste inchangé. ## Impact Limité : au redémarrage, l'ancien état est rechargé et l'article est rejoué (comportement préféré à une perte). La divergence ne se manifeste qu'en cas de réutilisation de la même instance dans un même processus. ## Correctif attendu - Ne mettre à jour l'état mémoire qu'après une sauvegarde atomique réussie, ou faire remonter l'échec pour traiter l'acquittement comme non confirmé. - Test : échec de remplacement suivi d'une réutilisation de la même instance (et non seulement la préservation du fichier). ## Contexte Découvert pendant la revue de PR #39. Non bloquant pour la PR.
OpenCode added the bugpriority:lowarea:rss labels 2026-09-12 21:53:21 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AntoineVe/college-infos#49