dd-trace-js
dd-trace-js copied to clipboard
MaxListenersExceededWarning: Possible EventEmitter memory leak detected
Describe the bug
When running tests (jest), I'm seeing a bunch of the following warnings:
(node:11319) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:451:17)
at Socket.addListener (events.js:467:10)
at Socket.Readable.on (internal/streams/readable.js:867:35)
at Socket.addListenerWithTrace [as on] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:148:26)
at Socket.once (events.js:498:8)
at Socket.addListenerWithTrace [as once] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:169:24)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:123:12
at Array.forEach (<anonymous>)
at setupListeners (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:122:10)
at wrapTcp (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:47:3)
(node:11319) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 timeout listeners added to [Socket]. Use emitter.setMaxListeners() to increase limit
at _addListener (events.js:451:17)
at Socket.addListener (events.js:467:10)
at Socket.Readable.on (internal/streams/readable.js:867:35)
at Socket.addListenerWithTrace [as on] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:148:26)
at Socket.once (events.js:498:8)
at Socket.addListenerWithTrace [as once] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:169:24)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:123:12
at Array.forEach (<anonymous>)
at setupListeners (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:122:10)
at wrapTcp (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:47:3)
I'm seeing that for close, connect, error and timeout, aka all the events here.
Because it kinda seemed to me like the same socket is getting wrapped multiple times, I put a log statement in wrapTcp()
Attempted to log "Error: wrapping the socket again!
at wrapTcp (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:32:15)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)".
Environment
- Operation system: macOS 11.2, though it's also happening in CI (alpine docker)
- Node version: 14.17.0
- Tracer version: 1.2.1
- Agent version: I'd have to check this, but the warning seems unrelated to metrics being sent so I don't think the agent matters.
@nampas Well, that's certainly strange. The good news is it's unrelated to the previous issue. The bad news is the multiple wrapping.
Is it taking multiple code paths to wrapTcp? I.e. are all the stack traces the same or different? Be sure to set Error.stackTraceLimit = Infinity to make sure you're getting more than just the last 10 lines.
Looks like the stack trace is the same each time. With infinite stack trace, it looks like this:
Attempted to log "Error: wrapping the socket again!{}
at wrapTcp (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:15)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace [as connect] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at Agent.connect [as createConnection] (net.js:188:17)
at Agent.createSocket (_http_agent.js:323:26)
at Agent.addRequest (_http_agent.js:274:10)
at new ClientRequest (_http_client.js:305:16)
at Object.request (http.js:94:10)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace [as request] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at retriableRequest (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:13:22)
at request (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:53:24)
at makeRequest (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:127:3)
at Writer._sendPayload (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:31:5)
at Writer.flush (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:80:12)
at Timeout._onTimeout (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/index.js:14:58)
at listOnTimeout (internal/timers.js:555:17)
at processTimers (internal/timers.js:498:7)".
at wrapTcp (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:15)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace [as connect] (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace [as request] (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at retriableRequest (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:13:22)
at request (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:53:24)
at makeRequest (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:127:3)
at Writer._sendPayload (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:31:5)
at Writer.flush (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:80:12)
at Timeout._onTimeout (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/index.js:14:58)
at processTimers (internal/timers.js:498:7)".
at console.log (node_modules/@jest/console/build/BufferedConsole.js:199:10)
at wrapTcp (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:11)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
```
Actually wait, here's one from a different code path (looks like Jest teardown)
Attempted to log "Error: wrapping the socket again!{}
at wrapTcp (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:15)
at Socket.connectWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace [as connect] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at Agent.connect [as createConnection] (net.js:188:17)
at Agent.createSocket (_http_agent.js:323:26)
at Agent.addRequest (_http_agent.js:274:10)
at new ClientRequest (_http_client.js:305:16)
at Object.request (http.js:94:10)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace [as request] (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at retriableRequest (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:13:22)
at request (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:53:24)
at makeRequest (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:127:3)
at Writer._sendPayload (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:31:5)
at Writer.flush (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:80:12)
at /Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:55:34
at new Promise (<anonymous>)
at DatadogJestEnvironment.teardownWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:54:13)
at DatadogJestEnvironment.teardownWithTrace (/Users/nathanpastor/code/gql-gateway/node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:57:23)".
at wrapTcp (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:15)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace [as connect] (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Object.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Object.requestTrace [as request] (node_modules/dd-trace/packages/datadog-plugin-http/src/client.js:76:45)
at retriableRequest (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:13:22)
at request (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/request.js:53:24)
at makeRequest (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:127:3)
at Writer._sendPayload (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:31:5)
at Writer.flush (node_modules/dd-trace/packages/dd-trace/src/exporters/agent/writer.js:80:12)
at node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:55:34
at DatadogJestEnvironment.teardownWithTrace (node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:54:13)
at DatadogJestEnvironment.teardownWithTrace (node_modules/dd-trace/packages/datadog-plugin-jest/src/jest-environment.js:57:23)".
at console.log (node_modules/@jest/console/build/BufferedConsole.js:199:10)
at wrapTcp (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:33:11)
at Socket.connectWithTrace (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:22:11)
at node_modules/dd-trace/packages/dd-trace/src/scope/base.js:54:19
at Scope._activate (node_modules/dd-trace/packages/dd-trace/src/scope/async_resource.js:57:14)
at Scope.activate (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:12:19)
at Socket.bound (node_modules/dd-trace/packages/dd-trace/src/scope/base.js:53:20)
at Socket.connectWithTrace [as connect] (node_modules/dd-trace/packages/datadog-plugin-net/src/index.js:26:40)
Also not sure if it's helpful, but I get the same MaxListenersExceeededWarning when setting DD_TRACE_DISABLED_PLUGINS=jest (of course, without the stacktraces that have datadog-plugin-jest in them)
@nampas I can't seem to be able to reproduce this locally. Is there any way you could provide a reproduction case?
@nampas It's possible this was due to an issue we had with net event emitters. This is fixed in the latest release, can you try with the latest release and see if that resolves the issue?
Thanks for the update @bengl . We will try the upgrade soon.
@bengl btw we tried the version upgrade, but ended up here :(
@nampas Now that the memory leak has been fixed in 2.8.0, are you still getting the original error from above?
@rochdev memory leak still happens in 2.8 and 2.9.1 as well, any thoughts ?
@dushansilva Are you seeing an actual increase in memory that eventually leads to an OOM exception, or just the message from the original issue of the thread? (or both)
yes we are seeing a a gradual increase in the memory in our infrastructure and it ends up going down due to OOM, we tried the versions 2.8 and 2.9.1.
hi, looks like the same is happening for Mocha plugin
(node:27) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Runner]. Use emitter.setMaxListeners() to increase limit
206 at _addListener (events.js:390:17)
207 at Runner.addListener (events.js:406:10)
208 at addListener (/workdir/node_modules/wtfnode/index.js:326:30)
209 at Runner.Cls.<computed> [as on] (/workdir/node_modules/wtfnode/index.js:348:27)
210 at Runner.once (events.js:437:8)
211 at addListener (/workdir/node_modules/wtfnode/index.js:326:30)
212 at Runner.Cls.<computed> [as once] (/workdir/node_modules/wtfnode/index.js:348:27)
213 at Runner.runTests (/workdir/node_modules/dd-trace/packages/datadog-instrumentations/src/mocha.js:146:10)
214 at /workdir/node_modules/mocha/lib/runner.js:919:10
215 at next (/workdir/node_modules/mocha/lib/runner.js:486:14)
216 at cbHookRun (/workdir/node_modules/mocha/lib/runner.js:551:7)
217 at done (/workdir/node_modules/mocha/lib/runnable.js:310:5)
218 at /workdir/node_modules/mocha/lib/runnable.js:371:11
219 at processTicksAndRejections (internal/process/task_queues.js:93:5)
We've had a lot of changes with the project since this issue was reported. I'll close it for now since it has likely been fixed.
If you think it's still an issue please upgrade to the latest version of the tracer to confirm and if so feel free to reopen this issue!