Що є джерелом помилки: 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)

Мені цікаво, чи це пов’язано з атакою DynDns DDOS, яка вплинула на Shopify та багато інших служб сьогодні. Ось стаття про це.

Моє головне питання - що dns.jsробити? Яка частина вузла входить до його складу? Як я можу відтворити цю помилку за допомогою іншого домену?

Відповіді:


160

Якщо ви отримаєте цю помилку за допомогою хмарних функцій Firebase, це пов’язано з обмеженнями вільного рівня ( виїзна мережа дозволена лише службам Google ).

Оновіть до планів Полум'я чи Повітря, щоб він працював.

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


28
Ви просто врятували мені години досліджень. Kudos
Девід Шопен

1
це правильно, щойно оновлено, щоб заплатити за плату за користування платою за нульову вартість (це дані про рівень безкоштовного рівня від іскри)
JerryGoyal

Чи можете ви @NullPointer розробити рішення, я все ще отримую помилки `Помилка: не вдалося впоратися із запитом`
Alam

У мене є те саме питання, і я перейшов до облікового запису Blaze, але проблема все одно. Я намагаюся використовувати листоношу.
Девендра Сінгх

106

EAI_AGAIN - помилка призупиненого пошуку DNS, це означає, що це помилка підключення до мережі або помилка, пов’язана з проксі.

Моє головне питання - що робить dns.js?

  • Dns.js є для вузла, щоб отримати ip адресу домену (коротко).

Ще трохи інформації: http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html


4

Це питання, пов’язане з налаштуванням файлів хостів. Додайте наступний рядок до свого хот-файлу в Ububtu: / etc / hosts

127.0.0.1   localhost

У windows: c: \ windows \ System32 \ driver \ etc \ hosts

127.0.0.1   localhost

2

Помилка OP вказує хост ( my-store.myshopify.com). Помилка, з якою я зіткнулася, однакова в усіх відношеннях, за винятком того, що не вказано жодного домену.

Моє рішення може допомогти іншим, хто звертається сюди під заголовком "Помилка: getaddrinfo EAI_AGAIN"

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

Файл vue.config.jsчитав:

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

При подачі на оригінальну машину пусковий вихід:

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

Використовуючи ті самі налаштування на VM, tstvm07я отримав дуже схожу помилку з описаною в ОП:

 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-альпійський, до речі), я вирішив спробувати найдавніший фокус перезавантаження комп'ютерної науки ... Я зупинився і запустив докер контейнер і все повернулося до норми.

Зрозуміло, що це не є важливим вирішенням основної проблеми - я просто розміщую це питання, оскільки це вирішило проблему для мене, не надто заглиблюючись у кролячі нори.


1

Якщо ви отримаєте цю помилку з докерного контейнера , наприклад, під час роботи npm installвсередині альпійського контейнера, причиною може бути те, що мережа змінилася з моменту запуску контейнера.

Щоб вирішити це, просто зупиніться та перезавантажте контейнер

docker-compose down
docker-compose up

Джерело: https://github.com/moby/moby/isissue/32106#issuecomment-578725551


0

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


-3

Якщо ви не отримаєте цього в localhost або виробництві, це означає, що ви повинні оновити свій план через обмеження вільного рівня


-15

оновлення npm до останнього виправляє цю проблему для мене.

npm install npm@latest

ця проблема пов’язана з мережевим підключенням. отже, може бути тимчасовим. на стабільному інтернет-зв’язку це питання майже не спостерігалося.


24
Як оновлення менеджера пакунків може виправити помилку, не пов’язану з менеджером пакунків?
FF_Dev

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