В чем причина ошибки: getaddrinfo EAI_AGAIN?


133

Мой сервер выбросил это сегодня, что является ошибкой Node.js, которую я никогда раньше не видел:

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)

Мне интересно, связано ли это с DDOS-атакой DynDns, которая сегодня затронула Shopify и многие другие сервисы. Вот статья об этом.

Мой главный вопрос - что dns.jsделать? В какую часть узла он входит? Как я могу воссоздать эту ошибку с другим доменом?

Ответы:


161

Если вы получаете эту ошибку с Firebase Cloud Functions, это связано с ограничениями бесплатного уровня ( исходящие сети разрешены только для служб Google ).

Обновите планы до Flame или Blaze, чтобы он работал.

введите описание изображения здесь


29
Вы только что сэкономили мне часы исследования. Kudos
— Дэвид Шопен

1
Правильно, просто обновлен до
— тарифного

Можете ли вы, @NullPointer, разработать решение, я все еще получаю ошибки `Ошибка: не удалось обработать запрос`
— Алам

У меня такая же проблема, и я обновился до учетной записи Blaze, но проблема все та же. Я пытаюсь использовать почтальона.
— Девендра Сингх,

107

EAI_AGAIN - это ошибка истечения времени ожидания поиска DNS, означает, что это ошибка сетевого подключения или ошибка прокси-сервера.

Мой главный вопрос: что делает dns.js?

  • Dns.js предназначен для узла, чтобы получить IP-адрес домена (вкратце).

Дополнительная информация: http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html


4

Это проблема, связанная с настройкой файла hosts. В Ububtu добавьте следующую строку в свой горячий файл: / etc / hosts

127.0.0.1   localhost

В windows: c: \ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost

2

Ошибка OP указывает host ( my-store.myshopify.com). Ошибка, с которой я столкнулся, одинакова во всех отношениях, за исключением того, что не указан домен.

Мое решение может помочь другим, кого здесь привлекает заголовок «Ошибка: getaddrinfo EAI_AGAIN»

Я столкнулся с ошибкой при попытке обслужить приложение NodeJs и VueJs с другой виртуальной машины, на которой изначально был разработан код.

Файл vue.config.jsгласил:

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

При обслуживании на исходной машине выходными данными при запуске являются:

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

Использование тех же настроек на виртуальной tstvm07машине привело к ошибке, очень похожей на ту, которую описывает 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)

Если это еще не очевидно, меняем vue.config.jsна чтение ...

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

... решил проблему.



1

Я начал получать эту ошибку (хотя и другую трассировку стека) после тривиального обновления моего приложения GraphQL API, которое работает внутри контейнера докеров. По какой-то причине у контейнера возникли трудности с разрешением серверной службы, используемой API.

Посмотрев вокруг, чтобы увидеть, были ли внесены какие-либо изменения в базовый образ докера, из которого я собирал (кстати, узел: 13-alpine), я решил попробовать самый старый компьютерный трюк перезагрузки ... Я остановился и запустил докер контейнер и все вернулось в норму.

Ясно, что это не является значимым решением основной проблемы - я просто публикую это, потому что оно помогло мне прояснить проблему, не углубляясь слишком глубоко в кроличьи норы.


1

Если вы получаете эту ошибку из контейнера докеров , например, при запуске npm installвнутри контейнера alpine, причиной может быть то, что сеть изменилась с момента запуска контейнера.

Чтобы решить эту проблему, просто остановите и перезапустите контейнер

docker-compose down
docker-compose up

Источник: https://github.com/moby/moby/issues/32106#issuecomment-578725551


0

У меня была такая же проблема с AWS и Serverless. Я пробовал с eu-central-1регионом, и это не сработало, поэтому мне пришлось изменить его на us-east-2для примера.


-3

Если у вас нет этого на локальном хосте, это означает, что вы должны обновить свой план из-за ограничений уровня бесплатного пользования.


-15

обновление npm до последних исправляет эту проблему для меня.

npm install npm@latest

эта проблема связана с вашим сетевым подключением. следовательно, может быть временным. при стабильном интернет-соединении эта проблема практически не наблюдалась.


24
Как обновление диспетчера пакетов может исправить ошибку, не связанную с диспетчером пакетов?
— FF_Dev

3
В защите @anerjan это может произойти во время работы, npm installи я представляю, сколько времени потребовалось для остановки обновления и перезапуска, когда он снова подключился к Интернету.
— Рамбатино
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.