Skip to content

MaxListenersExceededWarning: Possible EventEmitter memory leak detected #4363

Description

@gohmc

When I ran load test against lb4 backed application, i got flooded with the above warnings and observed the lb4 application slow down significantly (4x slower than normal with very poor throughput). However, the application didn't crash.

It looks like too many interceptors need to watch the event loop? It can be reproduce with one of the lb4 example:

lb4 example greeting-app
cd loopback4-example-greeting-app
npm start // with --trace-warnings
Use a load test application against http://127.0.0.1:3000/greet/world. Example:
autocannon -c 10 -d 40 -p 10 localhost:3000/greet/world

(node:30929) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 bind listeners added to [RestServer]. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:268:17)
at RestServer.addListener (events.js:284:10)
at RequestContext.addParentEventListener (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/context.js:152:22)
at RequestContext.setupEventHandlersIfNeeded (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/context.js:113:14)
at RequestContext.subscribe (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/context.js:414:14)
at ContextView.open (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/context-view.js:46:43)
at Object.createViewGetter (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/context-view.js:171:10)
at Object.resolve (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/core/dist/extension-point.js:58:26)
at /home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolver.js:102:30
at /home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolution-session.js:92:53
at Object.tryWithFinally (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/value-promise.js:157:18)
at Function.runWithInjection (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolution-session.js:92:32)
at resolve (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolver.js:99:61)
at /home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolver.js:176:16
at Object.resolveList (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/value-promise.js:130:32)
at resolveInjectedArguments (/home/ec2-user/projects/loopback/loopback4-example-greeting-app/node_modules/@loopback/context/dist/resolver.js:159:28)

Thanks for looking into this.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions