Was ist die Fehlerquelle: getaddrinfo EAI_AGAIN?

133

Mein Server hat dies heute geworfen, was ein Node.js-Fehler ist, den ich noch nie gesehen habe:

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)

Ich frage mich, ob dies mit dem DynDns DDOS-Angriff zusammenhängt, der Shopify und viele andere Dienste heute betroffen hat. Hier ist ein Artikel darüber.

Meine Hauptfrage ist, was macht dns.js? Zu welchem ​​Teil des Knotens gehört er? Wie kann ich diesen Fehler mit einer anderen Domain neu erstellen?

ThomasReggi
quelle

Antworten:

160

Wenn Sie diesen Fehler bei Firebase Cloud-Funktionen erhalten, liegt dies an den Einschränkungen der kostenlosen Ebene ( ausgehendes Netzwerk nur für Google-Dienste zulässig ).

Aktualisieren Sie auf die Flame- oder Blaze- Pläne, damit es funktioniert.

Geben Sie hier die Bildbeschreibung ein

Bastien
quelle
27
Sie haben mir gerade Stunden der Recherche erspart. Kudos
David Chopin
1
Das ist richtig, nur aktualisiert, um Pay-per-Use-Blaze-Plan für null Kosten (diese Übertrag kostenlose Tier-Daten von Spark)
JerryGoyal
Können Sie @NullPointer, die Lösung ausarbeiten, ich erhalte immer noch Fehler `Fehler: konnte die Anfrage nicht bearbeiten`
Alam
Ich habe das gleiche Problem und habe ein Upgrade auf das Blaze-Konto durchgeführt, aber das Problem ist immer noch dasselbe. Ich versuche, Postboten zu benutzen.
Devendra Singh
106

EAI_AGAIN ist ein Zeitüberschreitungsfehler bei der DNS-Suche. Dies bedeutet, dass es sich um einen Netzwerkverbindungsfehler oder einen Proxy-Fehler handelt.

Meine Hauptfrage ist, was macht dns.js?

  • Die Datei dns.js dient dazu, dass der Knoten die IP-Adresse der Domäne abruft (in Kürze).

Weitere Informationen: http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

xerq
quelle
4

Dies ist das Problem im Zusammenhang mit der Einrichtung der Hosts-Datei. Fügen Sie Ihrer Hots-Datei in Ububtu die folgende Zeile hinzu: / etc / hosts

127.0.0.1   localhost

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

127.0.0.1   localhost
Radhe9254
quelle
2

Der OP-Fehler gibt einen Host ( my-store.myshopify.com) an. Der Fehler, auf den ich gestoßen bin, ist in jeder Hinsicht der gleiche, außer dass keine Domäne angegeben ist.

Meine Lösung kann anderen helfen, die hier mit dem Titel "Fehler: getaddrinfo EAI_AGAIN" gezeichnet sind.

Beim Versuch, eine NodeJs & VueJs-App von einer anderen VM aus zu bedienen, von der der Code ursprünglich entwickelt wurde, ist der Fehler aufgetreten.

Die Datei vue.config.jslautete:

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

Bei der Bedienung auf der Originalmaschine lautet die Startausgabe:

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

Wenn tstvm07ich die gleichen Einstellungen auf einer VM verwende, erhalte ich einen sehr ähnlichen Fehler wie im 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)

Wenn es nicht schon offensichtlich ist, ändern Sie vue.config.jszu lesen ...

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

... Problem gelöst.

Martin Bramwell
quelle
1

Ich habe diesen Fehler erhalten (allerdings eine andere Stapelverfolgung), nachdem ich eine einfache Aktualisierung meiner GraphQL-API-Anwendung vorgenommen habe, die in einem Docker-Container ausgeführt wird. Aus irgendeinem Grund hatte der Container Schwierigkeiten, einen von der API verwendeten Back-End-Service aufzulösen.

Nachdem ich mich umgesehen hatte, um festzustellen, ob das Docker-Basis-Image, aus dem ich erstellt hatte (Knoten: übrigens 13-alpin), geändert worden war, entschied ich mich, den ältesten Informatik-Trick des Neustarts auszuprobieren ... Ich stoppte und startete den Docker Container und alles ging wieder normal.

Dies ist eindeutig keine sinnvolle Lösung für das zugrunde liegende Problem - ich poste dies lediglich, da es das Problem für mich geklärt hat, ohne zu tief in die Kaninchenlöcher zu gehen.

John Rix
quelle
0

Ich hatte das gleiche Problem mit AWS und Serverless. Ich habe es mit eu-central-1Region versucht und es hat nicht funktioniert, also musste ich es us-east-2für das Beispiel ändern .

Igor Janković
quelle
0

Wenn Sie diesen Fehler in einem Docker-Container erhalten , z. B. wenn Sie npm installin einem alpinen Container ausgeführt werden, kann dies daran liegen, dass sich das Netzwerk seit dem Start des Containers geändert hat.

Um dies zu lösen, stoppen Sie einfach und starten Sie den Container neu

docker-compose down
docker-compose up

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

Diego P. Steiner
quelle
-3

Wenn Sie dies bei localhost in keiner Produktion erhalten, bedeutet dies, dass Sie Ihren Plan aufgrund der Einschränkungen der kostenlosen Stufe aktualisieren müssen

Randy Reiza
quelle
-15

Das Aktualisieren der npm auf den neuesten Stand behebt dieses Problem für mich.

npm install npm@latest

Dieses Problem hängt mit Ihrer Netzwerkkonnektivität zusammen. kann daher vorübergehend sein. Bei einer stabilen Internetverbindung wurde dieses Problem kaum beobachtet.

anerjan
quelle
24
Wie kann durch das Aktualisieren des Paketmanagers ein Fehler behoben werden, der nicht mit dem Paketmanager zusammenhängt?
FF_Dev
3
Zur Verteidigung von @ anerjan kann es beim Ausführen auftreten, npm installund ich kann mir vorstellen , wie lange es gedauert hat, das Update zu stoppen und neu zu starten, nachdem er wieder eine Verbindung zum Internet hergestellt hatte.
Rambatino