Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

La modération d'un billet pendant son export fait planter le watchdog #6560

Open
philippemilink opened this issue Nov 26, 2023 · 1 comment
Labels
C-Back Concerne le back-end Django S-BUG Corrige un problème

Comments

@philippemilink
Copy link
Member

philippemilink commented Nov 26, 2023

Si un modérateur modère un billet (= supprime la version publique) pendant que le watchdog est en train d'exporter ce billet, le watchdog va planter lorsque l'export sera terminé (si une erreur se produit dans l'export en lui-même, elle sera rattrapée), au moment de vouloir mettre à jour l'état de la demande d'export (PublicationEvent).

Une façon de provoquer le bug est la suivante :

  1. Lancer make start-publication-watchdog et attendre que le watchdog n'ait plus rien à faire
  2. Ajouter time.sleep(30) à la fin du fichier, à la fin et dans le for (ici), de façon à faire une pause entre le traitement de deux publication_events (pour simuler qu'un export dure 30 secondes)
  3. Relancer le watchdog
  4. Se connecter en tant qu'admin, aller sur la version brouillon d'un billet publié et demander la génération de tous les exports
  5. Le watchdog exporte le premier format demandé, puis fait la pause. Pendant cette pause, revenir sur la version publique du billet et le modérer.
  6. Le watchdog plante en essayer de mettre à jour l'événement de publication, mais le PublishedContent que référence ce PublicationEvent n'existe plus...

Solution : probablement empêcher la suppression d'un contenu public si celui-ci est en train d'être exporté par le watchdog. On ne peut sans doute pas attendre dans la requête de modération que l'export soit terminé (même si c'est pour le supprimer juste après), car certains exports peuvent prendre plusieurs minutes...

Ceci dit, ce problème a peu de chance d'arriver en pratique (modérer un billet juste après sa publication -- ok, en cas de spam...) et ne casse pas la cohérence des données, donc je dirais que c'est un bug avec une priorité relativement basse...

@philippemilink philippemilink added S-BUG Corrige un problème C-Back Concerne le back-end Django labels Nov 26, 2023
@philippemilink philippemilink moved this from À trier to Quand les poules auront des dents in Suivi des tickets Nov 26, 2023
@Arnaud-D
Copy link
Contributor

Probablement à traiter en même temps que #6638.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Back Concerne le back-end Django S-BUG Corrige un problème
Projects
Status: Quand les poules auront des dents
Development

No branches or pull requests

2 participants