Projet

Général

Profil

Bug #43422

vérification de l'email : timeout trop long sur les requêtes DNS

Ajouté par Thomas Noël il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 mai 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision ee2adbbf (diff)
Ajouté par Thomas Noël il y a presque 4 ans

email validation: verify only MX, with a 7s timeout (#43422)

Historique

#2

Mis à jour par Thomas Noël il y a presque 4 ans

  • Assigné à mis à Thomas Noël
#3

Mis à jour par Thomas Noël il y a presque 4 ans

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.
#4

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.

#5

Mis à jour par Thomas Noël il y a presque 4 ans

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).

#6

Mis à jour par Frédéric Péters il y a presque 4 ans

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

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)

#8

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

Formats disponibles : Atom PDF