Qual è la fonte dell'errore: getaddrinfo EAI_AGAIN?


133

Il mio server ha lanciato questo oggi, che è un errore di Node.js che non ho mai visto prima:

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)

Mi chiedo se questo sia correlato all'attacco DDOS DynDns che ha colpito Shopify e molti altri servizi oggi. Ecco un articolo a riguardo.

La mia domanda principale è che cosa dns.jsfare? Di quale parte del nodo fa parte? Come posso ricreare questo errore con un dominio diverso?

Risposte:


161

Se ricevi questo errore con Firebase Cloud Functions, ciò è dovuto alle limitazioni del livello gratuito ( la rete in uscita è consentita solo ai servizi Google ).

Passa ai piani Flame o Blaze affinché funzioni.

inserisci qui la descrizione dell'immagine


29
Mi hai appena risparmiato ore di ricerche. Kudos
David Chopin

1
esatto

Puoi @NullPointer, elaborare la soluzione, ricevo ancora errori `Errore: impossibile gestire la richiesta`
Alam

Ho lo stesso problema e ho eseguito l'aggiornamento all'account Blaze, ma il problema è lo stesso. Sto provando a usare il postino.
Devendra Singh,


4

Questo è il problema relativo alla configurazione del file host. Aggiungi la seguente riga al tuo file hots in Ububtu: / etc / hosts

127.0.0.1   localhost

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

127.0.0.1   localhost

2

L'errore dell'OP specifica un host ( my-store.myshopify.com). L'errore che ho riscontrato è lo stesso sotto tutti gli aspetti tranne che non è specificato alcun dominio.

La mia soluzione può aiutare gli altri che sono attratti qui dal titolo "Errore: getaddrinfo EAI_AGAIN"

Ho riscontrato l'errore durante il tentativo di servire un'app NodeJs & VueJs da una VM diversa da quella in cui il codice è stato sviluppato originariamente.

Il file vue.config.jsdiceva:

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

Quando servito sulla macchina originale l'output di avvio è:

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

L'utilizzo delle stesse impostazioni su una VM tstvm07mi ha dato un errore molto simile a quello descritto dall'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)

Se non è già ovvio, passare vue.config.jsa leggere ...

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

... problema risolto.



1

Ho iniziato a ricevere questo errore (ma una traccia dello stack diversa) dopo aver effettuato un aggiornamento banale alla mia applicazione API GraphQL che viene gestita all'interno di un contenitore Docker. Per qualsiasi motivo, il contenitore aveva difficoltà a risolvere un servizio di back-end utilizzato dall'API.

Dopo aver controllato per vedere se fosse stata apportata qualche modifica all'immagine di base docker da cui stavo costruendo (nodo: 13-alpine, per inciso), ho deciso di provare il più vecchio trucco dell'informatica del riavvio ... Mi sono fermato e ho avviato il docker container e tutto è tornato alla normalità.

Chiaramente, questa non è una soluzione significativa al problema sottostante: sto semplicemente pubblicando questo perché ha chiarito il problema per me senza andare troppo in profondità nelle tane dei conigli.


1

Se si riceve questo errore dall'interno di un container docker , ad esempio durante l'esecuzione npm installin un container alpine, la causa potrebbe essere che la rete è cambiata da quando il container è stato avviato.

Per risolvere questo problema, basta arrestare e riavviare il contenitore

docker-compose down
docker-compose up

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


0

Ho avuto lo stesso problema con AWS e Serverless. Ho provato con eu-central-1regione e non ha funzionato così ho dovuto cambiarlo us-east-2per l'esempio.


-3

Se non lo ottieni su localhost né di produzione, significa che devi aggiornare il tuo piano a causa delle limitazioni del livello gratuito


-15

l'aggiornamento del npm all'ultimo risolve questo problema per me.

npm install npm@latest

questo problema è correlato alla connettività di rete. quindi può essere temporaneo. su una connessione Internet stabile questo problema è stato appena osservato.


24
In che modo l'aggiornamento del gestore pacchetti potrebbe risolvere un errore non correlato al gestore pacchetti?
FF_Dev

3
A difesa di @anerjan, può verificarsi durante l'esecuzione npm installe immagino il tempo impiegato per interrompere l'aggiornamento e riavviare si è connesso a Internet.
Rambatino
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.