В чем причина ошибки: 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делать? В какую часть узла он входит? Как я могу воссоздать эту ошибку с другим доменом?

ThomasReggi
источник

Ответы:

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

xerq
источник
4

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

127.0.0.1   localhost

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

127.0.0.1   localhost
Radhe9254
источник
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

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

anerjan
источник
24
Как обновление диспетчера пакетов может исправить ошибку, не связанную с диспетчером пакетов?
FF_Dev
3
В защите @anerjan это может произойти во время работы, npm installи я представляю, сколько времени потребовалось для остановки обновления и перезапуска, когда он снова подключился к Интернету.
Рамбатино