@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?
Просто проблема в том, что я отключил все участки кода, где используется этот модуль, но проблема остается.
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
проблема в утречке памяти, обычно это связано с бесконтрольным созданием подписок в эвент эмиттере или связывание долгоживущих объектов с коротко-живущими.
первое, с чего стоит начать обратить внимание на консоль запущенного приложения, не прилетает ли варнинга о превышении числа листенеров, если да, утечка вероятнее всего там, если нет, искать, если хватит опыта, через профилирование кода, если нет. то явное ревью своего кода....
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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