Skip to content

Repeated test error: Possible EventEmitter memory leak detected #2783

@philrz

Description

@philrz

Repro is with Zui commit b7dbd16 (associated with #2759).

While debugging other Zui test failures recently, I've been distracted by this big burst of errors that consistently appears when I run yarn test.

$ yarn test 2>&1 | grep MaxListenersExceededWarning
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 second-instance listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 web-contents-created listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 open-url listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 activate listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 before-quit listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 will-quit listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 result-selection-change listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clearPins listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleLeftSidebar listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleRightSidebar listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showPreferences listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showExportResults listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 back listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 forward listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 closeTab listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 windows:newSearchTab listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 globalStore:dispatch listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showReleaseNotes listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleHistogram listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 runCommand listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54128) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 detail-window-args listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 second-instance listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 web-contents-created listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 open-url listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 activate listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 before-quit listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 will-quit listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 result-selection-change listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clearPins listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleLeftSidebar listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleRightSidebar listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showPreferences listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showExportResults listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 back listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 forward listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 closeTab listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 windows:newSearchTab listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 globalStore:dispatch listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 showReleaseNotes listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 toggleHistogram listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 runCommand listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 detail-window-args listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(node:54125) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 second-instance listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit
(node:54126) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 second-instance listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit

This doesn't make the tests fail and for all I know they could be quite benign. However, their volume and mention of a possible memory leak gave me reason to be concerned that there could be an actual problem behind them and that this could somehow be contributing to the failures we see more often when CI tuns in GitHub Actions since those Runner hosts are typically quite resource constrained. If investigations find that there's not a real bug here, then maybe we could find a way to silence them or present them as harmless. I don't personally know anything about EventEmitter but my brief web search led me to this link where the folks posting in the thread caution that just increasing the limit is often not the appropriate course of action and that there very likely is a legit root problem that's worth fixing.

Note that the commit b7dbd16 where I've just reproduced the issue is associated with #2759, which was a major refactor. I narrowed down through binary search that this was the point at which this message started appearing so frequently. At commit 7363dee that came right before I only see one of these messages.

$ yarn test 2>&1 | grep MaxListenersExceededWarning
(node:54628) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 second-instance listeners added to [MockApp]. Use emitter.setMaxListeners() to increase limit

Metadata

Metadata

Assignees

Labels

testCreating/improving test automation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions