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

Renommer et republier un contenu pendant un export lève des exceptions #6638

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

Comments

@philippemilink
Copy link
Member

Sentry rapporte l'erreur suivante :

FileNotFoundError: [Errno 2] No such file or directory: '/opt/zds/data/contents-public/un-contenu/extra_contents'
  File "zds/tutorialv2/management/commands/publication_watchdog.py", line 67, in run
    publicator.publish(md_file_path, base_name)
  File "zds/tutorialv2/publication_utils.py", line 445, in publish
    shutil.copy2(pdf_file_path, published_content_entity.get_extra_contents_directory())

la ligne en question :

shutil.copy2(pdf_file_path, published_content_entity.get_extra_contents_directory())

Ce qu'il s'est passé :

  1. Le contenu Un contenu a été publié
  2. Les demandes d'export ont été créées et ont commencé à être traitées, par exemple l'export en PDF
  3. Pendant ce temps, le contenu a été renommé en Un contenu plus précis et publié dans la foulée
  4. Le changement de titre (à vérifier, mais plus précisément : la publication après un changement de titre) change le nom du dossier de la version publique du contenu (on passe de contents-public/un-contenu à contents-public/un-contenu-plus-precis). Cependant, l'export en cours est en train de travailler sur contents-public/un-contenu, qui n'existe plus et va donc causer des erreurs de fichiers/dossiers non trouvés.

Solution

Vu tous les problèmes possibles qui peuvent arriver si on modifie la version publique d'un contenu pendant que le contenu est en train d'être exporté, je me demande s'il ne faut pas imaginer une sorte de verrou qui empêcherait de publier un contenu tant qu'un export est en cours.

@philippemilink philippemilink added S-BUG Corrige un problème C-Back Concerne le back-end Django labels Sep 1, 2024
@Arnaud-D
Copy link
Contributor

Arnaud-D commented Sep 1, 2024

Est-ce que ça serait possible d'interrompre l'export en cours pour relancer ensuite avec le nouveau ? Ça me paraît plus facile à l'usage. Si on remplace la version en ligne, il n'y a de toute façon pas de raison d'avoir l'export de la version précédente et niveau expérience utilisateur, c'est fluide.

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: À discuter
Development

No branches or pull requests

2 participants