Хобрук: Ваш путь к мастерству в программировании

Что является источником ошибки: getaddrinfo EAI_AGAIN?

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


Ответы:


1

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

Перейдите на тарифный план Flame или Blaze, чтобы он работал.

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

12.03.2019
  • Вы только что сэкономили мне часы исследования. Престижность 03.12.2019
  • Правильно, просто обновлен до тарифного плана с оплатой по факту использования с нулевой стоимостью (это переносимые данные уровня бесплатного пользования от Spark) 14.12.2019
  • Можете ли вы, @NullPointer, разработать решение, я все еще получаю ошибки `Ошибка: не удалось обработать запрос` 17.03.2020
  • У меня такая же проблема, и я обновился до учетной записи Blaze, но проблема все та же. Я пытаюсь использовать почтальона. 11.05.2020
  • По какой-то причине у меня это было, когда я пытался получить доступ к моим учетным данным для SMTP через process.env.SOMETHING, даже с включенным Blaze. 27.11.2020
  • В моем случае я уже был на плане Blaze, просто срок моей карты истек. 09.07.2021

  • 2

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

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

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

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

    21.10.2016

    3

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

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

    docker-compose down
    docker-compose up
    

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

    22.05.2020
  • У меня есть подозреваемая проблема, когда сеть на хосте сбрасывается, а затем в контейнерах появляются ошибки DNS. Есть ли способ настроить контейнеры, чтобы выжить в этом без их остановки? 14.05.2021

  • 4

    Как объясняет отличный ответ xerq, это проблема с тайм-аутом DNS.

    Я хотел предложить еще один возможный ответ для тех из вас, кто использует Подсистему Windows для Linux - в некоторых случаях что-то кажется неправильным в клиентской ОС после выхода Windows из спящего режима. Перезапуск ОС хоста устранит эти проблемы (вероятно, перезапуск службы WSL сделает то же самое).

    07.10.2020
  • Так было со мной. Перезагрузка устранила проблему! 10.06.2021

  • 5

    Ошибка OP указывает хост (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,
       },
     };
    

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

    07.11.2018

    6

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

    127.0.0.1   localhost
    

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

    127.0.0.1   localhost
    
    30.07.2018

    7

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

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

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

    14.02.2020

    8

    @xerq указал правильно, вот еще ссылка http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html.

    У меня такая же ошибка, я решил ее, обновив файл "hosts", находящийся в этом месте в ОС Windows

    C: \ Windows \ System32 \ драйверы \ и т. Д.

    Надеюсь, это поможет!!

    30.11.2017

    9

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

    30.03.2020

    10

    Включен Blaze, но он по-прежнему не работает?

    Скорее всего, вам нужно установить .env с правильного пути, require('dotenv').config({ path: __dirname + './../.env' }); не будет работать (или любой другой путь). Просто поместите файл .env в каталог functions, из которого вы выполняете развертывание в Firebase.

    29.11.2020

    11

    В моем случае проблема заключалась в диапазоне распределения IP-адресов сетей докеров, подробности см. В этом сообщении.

    08.02.2021

    12

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

    npm install npm@latest
    

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

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

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..