NodeJS: Como depurar “vazamento de memória EventEmitter detectado. 11 ouvintes adicionados ”
Como posso depurar meu aplicativo que lança esse erro:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:653:33)
at Socket.EventEmitter.once (events.js:179:8)
at TCP.onread (net.js:527:26)
Não consegui encontrar o objeto de vazamento assumido para aumentar o limite do ouvinte.setMaxListeners(0);
SOLUÇÃO (de fardjad e jan salawa)
Com as buscas de jan salawa eu encontrei uma biblioteca de trabalho (longjohn) para aumentar os traços de pilha. Com a resposta do fardjad eu descobri que temos que prototiparEventEmitter.addListener
E EventEmitter.on
.
Com a solução, consegui este novo traço:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener.EventEmitter.on (xxx/main.js:44:15)
at Readable.on (_stream_readable.js:653:33)
at ServerResponse.assignSocket (http.js:1072:10)
at parser.onIncoming (http.js:1979:11)
at parserOnHeadersComplete (http.js:119:23)
at socket.ondata (http.js:1912:22)
at TCP.onread (net.js:510:27)