Project

General

Profile

Support #44730

Erreur SMS OVH : Too much requests. Please retry in 3 seconds.

Added by Thomas Noël 5 months ago. Updated 5 months ago.

Status:
Nouveau
Priority:
Normal
Assignee:
Target version:
-
Start date:
02 Jul 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

On a cette nouvelle erreur de temps en temps :

error running send_job job (OVH error: {'status': 429, 'message': 'Too much requests.\nPlease retry in 3 seconds.\n'})

Question : est-ce que le passage en mode "jobs" provoque de nombreux appels simultanés vers OVH ? (envoi d'un seul coup de tous les SMS "jobbés") ?

Si oui, ça pourrait être la cause de ce problème et il faudrait trouver une parade.


Related issues

Related to Passerelle - Development #44815: avoir la possibilité d'ajouter un job en lui demandant de s'exécuter tout de suiteNouveau04 Jul 2020

Actions
Related to Passerelle - Development #42230: Uniformiser les retours des connecteurs SMSSolution proposée28 Apr 2020

Actions

History

#1

Updated by Nicolas Roche 5 months ago

  • Assignee set to Nicolas Roche
#2

Updated by Nicolas Roche 5 months ago

Question : est-ce que le passage en mode "jobs" provoque de nombreux appels simultanés vers OVH ?

Oui, les demandes sont différées pour être envoyées à la suites toutes les 5 minutes (sur le SaaS et idem à Toulouse) :

*/5 * * * * passerelle /usr/bin/passerelle-manage tenant_command cron --all-tenants jobs

Nos plus gros consommateurs de SMS sont :
  • Toulouse : 2036 pages de jobs
  • cd59 : 87 pages de jobs
  • Mauguio : 66 pages de jobs

J'ai retrouvé le bug (à priori uniquement) sur Toulouse :
(je n'ai trouvé aucune information relative dans la doc d'OVH)
https://passerelle.eservices.toulouse-metropole.fr/ovh/sms/?page=15#logs

Le 2 juillet à 10:26:32 il y a un semblant de campagne de SMS pour dire aux usagers que la piscine n'est plus confinée :
https://passerelle.eservices.toulouse-metropole.fr/ovh/sms/?page=675#logs
Je pensais donc que ce message d'erreur était lié à cette utilisation exceptionnelle, mais en fait ce n'est pas un envoie si massif que ça : les envois ont duré jusqu'au 2 juillet à 11:17:25, soit 3375 envois en 50 minutes, ou encore 1.125 SMS par seconde.

Si oui, ça pourrait être la cause de ce problème et il faudrait trouver une parade.

Ici on voit que Toulouse et Maugio envoient des SMS en même temps (2 juillet 2020 à 11:16:56):
https://passerelle.eservices.toulouse-metropole.fr/ovh/sms/?page=11#logs
https://passerelle.demarches.mauguio-carnon.com/ovh/sms-via-ovh-eo/?page=6#logs
Résoudre le problème uniquement sur une instance n'est qu'un pis-aller, mais je peux proposer un patch dans ce sens si besoin.

#3

Updated by Benjamin Dauvergne 5 months ago

Le souci il me semble c'est d'envoyer 1 par 1 ce qui est en fait un mailing, sachant que l'API supporte une liste de destinataires. Ce serait peut-être plus utile de bosser sur une sorte de dédoublonnage, avec une latence défini par l'appelant. Quand on poste un SMS, on peut définir qu'il reste en queue 5 minutes avant d'être envoyé, si un nouveau message avec le même contenu arrive, on l'ajoute aux destinataires du message existant et on ne crée rien de nouveau.

#4

Updated by Frédéric Péters 5 months ago

Ici on voit que Toulouse et Maugio envoient des SMS en même temps (2 juillet 2020 à 11:16:56):

Pour info, Toulouse n'est pas sur le SaaS.

#5

Updated by Thomas Noël 5 months ago

Nicolas Roche a écrit :

Oui, les demandes sont différées pour être envoyées à la suites toutes les 5 minutes
(sur le SaaS et idem à Toulouse) :

(...)

Je pensais donc que ce message d'erreur était lié à cette utilisation exceptionnelle,
mais en fait ce n'est pas un envoie si massif que ça : les envois ont duré jusqu'au 2
juillet à 11:17:25, soit 3375 envois en 50 minutes, ou encore 1.125 SMS par seconde.

Justement, 50 minutes = 10 envois en lot (chaque 5 minutes).
Donc il y a eu des salves de centaines d'envois d'un seul coup.

C'est ça qui est gênant avec le principe des jobs : ils provoquent des envois en masse.

(Je n'ai pas encore de solution, on est dans un soucis pas simple, pour les mails on a souvent le même soucis, comment "ralentir", et c'est de la configuration assez touchy dans les MTA)

#6

Updated by Nicolas Roche 5 months ago

si un nouveau message avec le même contenu arrive, on l'ajoute aux destinataires du message existant et on ne crée rien de nouveau.

Oui, en plus d'une latence défini par l'appelant, il faudrait fixer une limite raisonnable au nombre maximum de destinataires d'un message, pour dédoublonner les envois.
(Parce que j'imagine qu'il y a une limite au nombre de destinataires)
https://forum.ovh.com/showthread.php/111455-Envoi-de-SMS-en-masse-par-l-API-POST-ou-fichier

Question : est-ce que je relance les jobs en erreurs (à la main/souris) ?

#9

Updated by Thomas Noël 5 months ago

  • Related to Development #44815: avoir la possibilité d'ajouter un job en lui demandant de s'exécuter tout de suite added
#13

Updated by Nicolas Roche 5 months ago

ça pourrait se faire si l'envoi de SMS sortait une SkipJob dans ce cas...?

yep (c'est ce que j'ai compris)
https://dev.entrouvert.org/issues/21465#note-8

#14

Updated by Nicolas Roche 5 months ago

Also available in: Atom PDF