Задать вопрос
@vetsmen

Утечка памяти в node.js?

Доброго времени суток. Происходит течка памяти в node.js, через сутки приложение выключается, выдает ошибку:
Security context: 0x1640faa57c1 <JSObject>
    1: stringSlice(aka stringSlice) [buffer.js:~555] [pc=0x3a41f7f9c024](this=0x3463f0022d1 <undefined>,buf=0xa552aeef399 <Uint8Array map = 0x1ee6abe43339>,encoding=0x3463f0022d1 <undefined>,start=0,end=488634)
    2: /* anonymous */ [/srv/server/node_modules/request/request.js:~1122] [pc=0x3a41f97bfd5b](this=0xa552aeeb8f1 <Request map = 0x2c36337e05b1>)
    3: arguments adaptor frame: 1->...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [node]
 2: 0x11e7fec [node]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node]
 5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [node]
 6: v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector<char const>, v8::internal::PretenureFlag) [node]
 7: v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int) [node]
 8: node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Local<v8::Value>*) [node]
 9: 0x1207c96 [node]
10: 0x3a41f79d5b07


Правильно ли я понимаю, что ошибка связана с модулем /srv/server/node_modules/request/request.js?
Просто проблема в том, что я отключил все участки кода, где используется этот модуль, но проблема остается.
  • Вопрос задан
  • 197 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    JVA-074 Java Advanced I: функциональное, асинхронное и реактивное программирование
    1 неделя
    Далее
  • Shultais Education
    Программирование на JavaScript
    3 месяца
    Далее
  • Onskills
    Разработка VK Mini Apps
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
проблема в утречке памяти, обычно это связано с бесконтрольным созданием подписок в эвент эмиттере или связывание долгоживущих объектов с коротко-живущими.
первое, с чего стоит начать обратить внимание на консоль запущенного приложения, не прилетает ли варнинга о превышении числа листенеров, если да, утечка вероятнее всего там, если нет, искать, если хватит опыта, через профилирование кода, если нет. то явное ревью своего кода....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы