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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Constat
BlogRSSState.acknowledge()met à jour_known_guids,_etaget_last_modifieden 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
Contexte
Découvert pendant la revue de PR #39. Non bloquant pour la PR.