Development #47122
clean_nonces() n'est jamais exécuté
0%
Description
et les fichiers s'accumulent.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Christophe Siraut il y a plus de 3 ans
- Fichier 0001-publisher-clean_nonces-delta-is-expressed-in-days-47.patch 0001-publisher-clean_nonces-delta-is-expressed-in-days-47.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
le delta était comparé en secondes.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Statut changé de Solution proposée à En cours
delta c'est bien des secondes, now aussi et os.stat()[8] aussi; is_url_signed()
crée le fichier nonce avec un ctime 30 secondes dans le futur, sachant que le timestamp d'une signature a une durée de vie de 30 secondes et clean_nonces()
se donne 60 secondes en plus pour faire le ménage, dans l'idée qu'on a le droit a jusqu'à 60 secondes de décalage dans les timestamps.
J'aimerai bien voir un test qui foire parce que pour l'instant j'ai cherché tout seul je n'ai toujours pas compris pourquoi ça ne s'exécute pas (je ne me remet pas ça en cause, ça ne s'exécute pas c'est certain), quelqu'un a tenté de débugger à base de print en prod pour voir pourquoi ça ne supprime rien ?
Je note ici que le champ accédé est 8, ST_MTIME, alors que ça devrait être 9, ST_CTIME (mais pour un fichier créé et jamais touché ça ne devrait pas poser de souci).,
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Patch proposed changé de Oui à Non
Bon, clean_nonces s'exécute, c'est sûr. Et ça doit être des secondes, c'est sûr aussi.
Maintenant, ce patch a-t-il été testé avec succès sur le SaaS ?
Parce que perso mon idée du problème c'est qu'il était peut-être lié au NFS parce que regarder ailleurs donne bien des nonces vidés, mais je n'ai pas creusé (j'ai juste commencé à me donner un outil avec #47055).
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
En fait c'est l'appel flock() qui foire à chaque fois, visiblement il faut ouvrir le fichier avec O_RDWR.
PS: manpage de fnctl :
EBADF fs n'est pas un descripteur de fichier ouvert, ou la commande était F_SETLK ou F_SETLKW et le mode d'ouverture du descripteur de fichier ne correspond pas à celui du type de verrou demandé.
debug sur wcs.node1.dev.saas.entrouvert.org:
/var/lib/wcs/demo.dev.au-quotidien.com/cleaning_nonces.lock 30 [Errno 9] Bad file descriptor
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Fichier 0001-misc-fix-locking-in-clean_nonces-47122.patch 0001-misc-fix-locking-in-clean_nonces-47122.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Remplacé le lock maison par locket comme ailleurs dans le code.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
Je suppose que clean_sessions ne marche pas non plus, ça utilise la même primitive (qui marche dans les tests mais donc peut-être pas sur NFS, ou peut-être pas dans le process qui n'a pas créé le fichier initialement, on peut chercher ou juste remplacer par locket qui marche).
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Lié à Development #47127: remplacer fnctl.flock() par locket dans clean_session() ajouté
Mis à jour par Christophe Siraut il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
- Assigné à changé de Christophe Siraut à Benjamin Dauvergne
ok pour moi d'utiliser locket.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit b8ba687a2eeb495ed81683d0eb93ff232d17618d Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Tue Sep 29 14:38:48 2020 +0200 misc: fix locking in clean_nonces (#47122)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: fix locking in clean_nonces (#47122)