Bug #43422
vérification de l'email : timeout trop long sur les requêtes DNS
0%
Description
sur un formulaire où un usager tape un mail avec un domaine en panne, on se retrouve avec un timeout qui dépasse la minute, ce qui finit en 504.
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 4 ans
- Fichier 0001-email-validation-verify-only-MX-with-a-10s-timeout-4.patch 0001-email-validation-verify-only-MX-with-a-10s-timeout-4.patch ajouté
- Fichier 0001-add-timeouts-on-email-DNS-validation-43422.patch 0001-add-timeouts-on-email-DNS-validation-43422.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Note : un pépin annexe est que la vérification des champs (et donc du MX) est faite 3 fois quand on clique sur "Suivant".
On ne peut pas facilement faire de timeout sur socket.gethostbyname donc je propose de forcer le passage par py3dns.
Ci-joint deux propositions :- la première où on teste MX puis A et AAAA, avec à chaque fois 4 secondes d'attente
- la seconde, qui a ma préférence, où on ne cherche que des MX, avec un timeout à 10 secondes (mais on pourrait le baisser à 5 à mon avis), parce qu'on est en 2020 et que les domaines sans MX, faut pas pousser.
Mis à jour par Frédéric Péters il y a presque 4 ans
En fait le socket.gethostbyname me permet de taper fred@localhost qui est une adresse valide et qui fonctionne et qui m'accélère pas mal les choses, je trouve moche de devoir désactiver le code de vérification DNS pour en profiter; ça m'irait d'accepter spécialement domain == "localhost", et de faire la vérif MX seule.
Mis à jour par Thomas Noël il y a presque 4 ans
- Fichier 0001-email-validation-verify-only-MX-with-a-7s-timeout-43.patch 0001-email-validation-verify-only-MX-with-a-7s-timeout-43.patch ajouté
Frédéric Péters a écrit :
En fait le socket.gethostbyname me permet de taper fred@localhost qui est une adresse valide et qui fonctionne et qui m'accélère pas mal les choses, je trouve moche de devoir désactiver le code de vérification DNS pour en profiter; ça m'irait d'accepter spécialement domain == "localhost", et de faire la vérif MX seule.
Hop, ajouté sans mettre de commentaire alors que j'avais envie d'écrire une blague sur tes manies de vieux.
J'ai diminué le timeout à 7s dans l'idée qu'on peut faire 3 vérifications qui plantent totalement (bien rare) et que ça restera sous la barre des 25 secondes (timeout nginx/uwsgi/etc).
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Thomas Noël il y a presque 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ee2adbbf49b3f40870216856bdb48c40aa70fb85 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Thu May 28 16:14:43 2020 +0200 email validation: verify only MX, with a 7s timeout (#43422)
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
email validation: verify only MX, with a 7s timeout (#43422)