Projet

Général

Profil

Bug #22325

récup charte vs threads

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
06 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Avec un peu de malchance la mise à jour asynchrone du thème se fait dans un thread alors que le processus est déjà recyclé pour une autre requête et bim mauvais settings.

(il y a un truc qu'on doit mal faire au niveau multitenant/settings.py)


Fichiers

Révisions associées

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

misc: don't use settings in async/thread theme update (#22325)

Historique

#1

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

Rapidement utilisé en local.

#3

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

(relu... mais je cède la place, je n'arrive pas à voir pourquoi get_template est forcément appelé avant)

#4

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

Hmm TenantSettingsWrapper utilise connection.get_tenant() (connection est thread local), TenantAwareThread normalement sauvegarde le tenant au moment de sa création et le restaure dans sa méthode run() donc normalement on devrait taper dans les bons settings.

Si on arrivait à reproduire facilement je mettrai bien des logs un peu partout (notamment log du tenant avant lancement du thread et dans la fonction exécutée dans le thread), ce qui m'étonne c'est quand même qu'on a jamais vu ça sur la prod en plusieurs années et pourtant c'est pas les thèmes différents qui manquent.

#5

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

Frédéric Péters a écrit :

Rapidement utilisé en local.

Mais donc localement tu reproduis le bug ?

#6

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

Benjamin Dauvergne a écrit :

Frédéric Péters a écrit :

Rapidement utilisé en local.

Mais donc localement tu reproduis le bug ?

Ok vu le commentaire sur l'autre ticket.

#7

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

normalement

Oui.

Mais donc localement tu reproduis le bug ?

cf aussi réponse sur admin@, c'est juste les erreurs 403 et les logs de combo après avoir activé uwsgi en thread only côté wcs. (mais dans cette configuration recette, la reproduction, si elle n'est pas automatique, est au moins très fréquente).

#8

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

Ok donc le souci il est uniquement coté w.c.s. et ma réponse sur admin@ indique d'où vient le souci, on peut fermer ce ticket je pense.

#9

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

Ce ticket permet à w.c.s. de ne pas rencontrer ce bug (vu l'accès à settings réalisé avant de partir du thread).

Je ne suis pas sûr de capter ta proposition une fois que ce ticket serait rejeté : c'est que w.c.s. puisse charger hobo.multitenant ? (je peux entendre ça comme idéal c'est juste 100× plus de boulot).

#10

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

Désolé je n'avais pas compris que le patch étant dans hobo il s'appliquait à corriger un bug uniquement dans w.c.s. (malgré mon mail d'ailleurs), donc ack, c'est la bonne chose à faire en attendant d'avoir des settings Django tenant aware coté w.c.s. (ou pas d'ailleurs).

#11

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

  • Statut changé de En cours à Résolu (à déployer)
commit b7b7a84879b12f3b6e1258b1abb4eb2bdf34d3b0
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Mar 6 17:08:49 2018 +0100

    misc: don't use settings in async/thread theme update (#22325)
#12

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

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

Formats disponibles : Atom PDF