Quelle est la source de l'erreur: getaddrinfo EAI_AGAIN?

133

Mon serveur a lancé ceci aujourd'hui, ce qui est une erreur Node.js que je n'ai jamais vue auparavant:

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

Je me demande si cela est lié à l'attaque DynDns DDOS qui a affecté Shopify et de nombreux autres services aujourd'hui. Voici un article à ce sujet.

Ma question principale est que fait dns.js-on? De quelle partie du nœud fait-il partie? Comment puis-je recréer cette erreur avec un domaine différent?

ThomasReggi
la source

Réponses:

161

Si vous obtenez cette erreur avec Firebase Cloud Functions, cela est dû aux limitations du niveau gratuit ( le réseau sortant n'est autorisé que pour les services Google ).

Passez aux plans Flame ou Blaze pour que cela fonctionne.

entrez la description de l'image ici

Bastien
la source
29
Vous venez de m'économiser des heures de recherche. Félicitations
David Chopin
1
c'est vrai, juste mis à niveau pour payer par utilisation plan blaze pour un coût nul (ce report de données de niveau gratuit de spark)
JerryGoyal
Pouvez-vous @NullPointer, élaborer la solution, je reçois toujours des erreurs `Erreur: n'a pas pu gérer la demande`
Alam
J'ai le même problème et j'ai mis à niveau vers le compte Blaze, mais le problème est toujours le même. J'essaye d'utiliser le facteur.
Devendra Singh
107

EAI_AGAIN est une erreur de dépassement du délai de recherche DNS, ce qui signifie qu'il s'agit d'une erreur de connectivité réseau ou d'une erreur liée au proxy.

Ma principale question est: que fait dns.js?

  • Le dns.js est là pour que le nœud obtienne l'adresse IP du domaine (en bref).

Quelques informations supplémentaires: http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

xerq
la source
4

Il s'agit du problème lié à la configuration des fichiers hôtes. Ajoutez la ligne suivante à votre fichier hots dans Ububtu: / etc / hosts

127.0.0.1   localhost

Sous Windows: c: \ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost
Radhe9254
la source
2

L'erreur de l'OP spécifie un hôte (my-store.myshopify.com ). L'erreur que j'ai rencontrée est la même à tous égards, sauf qu'aucun domaine n'est spécifié.

Ma solution peut aider les autres qui sont attirés ici par le titre "Erreur: getaddrinfo EAI_AGAIN"

J'ai rencontré l'erreur en essayant de servir une application NodeJs & VueJs à partir d'une machine virtuelle différente de celle où le code a été développé à l'origine.

Le fichier se vue.config.jslit:

 module.exports = {
   devServer: {
     host: 'tstvm01',
     port: 3030,
   },
 };

Lorsqu'il est servi sur la machine d'origine, la sortie de démarrage est:

App running at:
- Local:   http://tstvm01:3030/ 
- Network: http://tstvm01:3030/

L'utilisation des mêmes paramètres sur une machine virtuelle tstvm07m'a généré une erreur très similaire à celle décrite par l'OP:

 INFO  Starting development server...
 10% building modules 1/1 modules 0 activeevents.js:183                              
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo EAI_AGAIN
    at Object._errnoException (util.js:1022:11)
    at errnoException (dns.js:55:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

Si ce n'est pas déjà évident, changer vue.config.jspour lire ...

 module.exports = {
   devServer: {
     host: 'tstvm07',
     port: 3030,
   },
 };

... résolu le problème.

Martin Bramwell
la source
1

J'ai commencé à avoir cette erreur (une trace de pile différente cependant) après avoir effectué une mise à jour triviale de mon application API GraphQL qui fonctionne dans un conteneur docker. Pour une raison quelconque, le conteneur avait des difficultés à résoudre un service back-end utilisé par l'API.

Après avoir fouillé pour voir si des changements avaient été apportés à l'image de base du docker à partir de laquelle je construisais (nœud: 13-alpine, d'ailleurs), j'ai décidé d'essayer la plus ancienne astuce informatique de redémarrage ... j'ai arrêté et démarré le docker conteneur et tout est revenu à la normale.

De toute évidence, ce n'est pas une solution significative au problème sous-jacent - je ne fais que poster cela car cela a clarifié le problème pour moi sans aller trop loin dans les terriers des lapins.

John Rix
la source
1

Si vous obtenez cette erreur depuis un conteneur docker , par exemple lors de l'exécution npm installà l' intérieur d'un conteneur alpin, la cause peut être que le réseau a changé depuis le démarrage du conteneur.

Pour résoudre ce problème, arrêtez et redémarrez le conteneur

docker-compose down
docker-compose up

Source: https://github.com/moby/moby/issues/32106#issuecomment-578725551

Diego P. Steiner
la source
0

J'ai eu le même problème avec AWS et Serverless. J'ai essayé avec la eu-central-1région et cela n'a pas fonctionné, j'ai donc dû le changer us-east-2pour l'exemple.

Igor Janković
la source
-3

Si vous n'obtenez cela ni sur l'hôte local, ni sur la production, cela signifie que vous devez mettre à niveau votre plan en raison des limitations de l'offre gratuite.

Randy Reiza
la source
-15

la mise à jour du npm aux dernières corrections de ce problème pour moi.

npm install npm@latest

ce problème est lié à votre connectivité réseau. peut donc être temporaire. sur une connexion Internet stable, ce problème était à peine observé.

Anerjan
la source
24
Comment la mise à jour du gestionnaire de packages peut-elle corriger une erreur qui n'est pas liée au gestionnaire de packages?
FF_Dev
3
Dans la défense de @ anerjan, cela peut se produire lors de l'exécution npm installet j'imagine le temps qu'il a fallu pour arrêter la mise à jour et redémarrer, il s'était reconnecté à Internet.
Rambatino