306 votes

Quelle est la cause de l'erreur 'getaddrinfo EAI_AGAIN'?

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

Erreur: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    à Object.exports._errnoException (util.js:870:11)
    à errnoException (dns.js:32:15)
    à GetAddrInfoReqWrap.onlookup [comme 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 principale question est : que fait dns.js? À quelle partie de node.js appartient-il? Comment puis-je recréer cette erreur avec un domaine différent?

0 votes

J'ai obtenu cette erreur car mon GHA n'avait pas configuré le service Elasticsearch

0 votes

Est-ce que quelqu'un a envisagé de mettre à jour les fichiers de service systemd de docker et/ou containerd ? Comme ajouter After=nss-lookup.target peut-être ?

225voto

xerq Points 638

EAI_AGAIN est une erreur de délai d'attente 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 question principale est de savoir ce que fait dns.js?

  • Le dns.js est là pour que node puisse obtenir l'adresse IP du nom de domaine (en bref).

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

5voto

Martin Bramwell Points 644

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

Ma solution pourrait aider d'autres personnes qui viennent ici en raison du 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é initialement.

Le fichier vue.config.js se lit comme suit :

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

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

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

En utilisant les mêmes paramètres sur une machine virtuelle tstvm07, j'ai obtenu 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'était pas déjà évident, le fait de modifier vue.config.js pour qu'il lise...

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

... a résolu le problème.

3voto

Radhe9254 Points 41

Il s'agit du problème lié à la configuration du fichier hosts. Ajoutez la ligne suivante à votre fichier hosts Dans Ubuntu : /etc/hosts

127.0.0.1   localhost

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

127.0.0.1   localhost

1 votes

Cela devrait être configuré par défaut sur les systèmes Ubuntu.

1voto

mateen Points 21

@xerq a pointé correctement, voici quelques autres références http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

J'ai eu la même erreur, je l'ai résolue en mettant à jour le fichier "hosts" présent sous cet emplacement dans le système d'exploitation Windows

C:\Windows\System32\drivers\etc

J'espère que cela vous aidera !!

-17voto

anerjan Points 28

La mise à jour de npm vers la dernière version a résolu ce problème pour moi.

npm install npm@latest

Ce problème est lié à la connectivité de votre réseau. Il peut donc être temporaire. Sur une connexion internet stable, ce problème a été rarement observé.

31 votes

Comment la mise à jour du gestionnaire de paquets pourrait-elle résoudre une erreur qui n'est pas liée au gestionnaire de paquets ?

5 votes

Dans la défense de @anerjan, cela peut se produire lors de l'exécution de npm install et j'imagine le temps qu'il a fallu pour arrêter la mise à jour et redémarrer, il s'était reconnecté à Internet.

0 votes

@FF_Dev Si vous regardez le lien fourni dans la réponse acceptée, vous verrez une recommandation pour faire exactement ceci : codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X