Projet

Général

Profil

Bug #31016

erreur de gabarit 404

Ajouté par Frédéric Péters il y a environ 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
01 mars 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Il pouvait y avoir erreur 500 (si settings.THEME_SKELETON_URL n'était pas mis) ou gabarit du mauvais site (si c'était posé mais à la mauvaise adresse).


Fichiers

Révisions associées

Révision b7625dd1 (diff)
Ajouté par Frédéric Péters il y a environ 5 ans

publisher: reset site options when changing appdir (#31016)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 5 ans

Le cas None était facile à reproduire, c'est la toute première requête,

  • create_publisher général (attaché à /var/lib/wcs/)
  • set_config
  • le set_config de WcsPublisher fait un get_site_option pour voir s'il utilise postgresql
  • le get_site_option, comme site_options est None, fait un load_site_options
  • ça pose un self.site_options, qui est le configparser qui a lu /var/lib/wcs/site-options.cfg, donc vide.
  • arrive plus tard une requête, elle fait un set_app_dir()
  • le set_app_dir() fait un get_site_option() pour poser settings.THEME_SKELETON_URL
    • il le fait donc sur base de /var/lib/wcs/site-options.cfg, et hop, None

Le cas de mauvais gabarit tiré, a priori, c'est la même histoire sauf que le worker a déjà traité une requête et qu'il y a donc dans site_options encore les valeurs de la requête précédente.

Correction en réinitialisant le site_options au moment où on change l'app_dir.

#3

Mis à jour par Frédéric Péters il y a environ 5 ans

(pour info j'ai tapé ça sur la prod saas2 et ça m'a eu l'air ok).

#4

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Solution proposée à En cours
#5

Mis à jour par Frédéric Péters il y a environ 5 ans

(je vois ce matin que ça casse au moins tests/test_hobo.py::test_configure_postgresql, je regarde)

#6

Mis à jour par Frédéric Péters il y a environ 5 ans

En fait le premier était bon, on a quand même besoin de garder la réinitialisation dans set_config() (peut-être que c'est juste à cause de ce que certains tests font mais je vais rester prudent). (réexécution générale des tests en cours)

#7

Mis à jour par Frédéric Péters il y a environ 5 ans

Et voilà avec correction à un test, qui ne passait pas car il n'écrivait pas le site-options sur le disque, et comme il est maintenant réinitialisé son contenu était perdu.

#8

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Statut changé de Solution proposée à Solution validée
#9

Mis à jour par Thomas Noël il y a environ 5 ans

Je suis étonné qu'on ne voit ce soucis que maintenant, mais ack aussi, bien sûr. Peut-être est-ce du au fait que le raise Http404 arrive tôt, mais que sur de "vraies" requêtes on finissait toujours par bien relire les options à un moment donné ? Bon bref. Ack.

#10

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)

Ouaip c'est une partie d'analyse qui manque : comment ça tenait jusqu'à présent.

commit b7625dd1015261bac55d8fcc886834e23aadf14b
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Mar 1 01:08:15 2019 +0100

    publisher: reset site options when changing appdir (#31016)

(et je vais tagguer et pousser jusqu'au dépôt de prod)

#11

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#12

Mis à jour par Frédéric Péters il y a environ 5 ans

  • Statut changé de Solution déployée à Fermé

(pour info déploiement du paquet en prod effectué ce matin)

Formats disponibles : Atom PDF