fix: Unregister socket timeout listener to prevent MaxListenersExceededWarning #1993
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey there,
after updating our application to node 19 we noticed that the firebase package is causing a
MaxListenersExceededWarning
error. The error occurs in the underlying method call inHttpClient.send
namely inAsyncHttpCall.execute
. There the timeout listener is not removed after the socket is closed. I could provoke the error only in the integration tests, in the unit tests to the mentioned method the error does not occur. Therefore I added a listener spy check in theafterEach
of the auth integration tests which should not be called.Attention, the error only occurs with Node 19, if someone wants to test the behavior it must be done with this version.
Thanks for the great work – I am looking forward to your review.
PS: we mainly use the auth feature of firebase. so i may have missed something in other features/tests.
Discussion
Testing
afterEach
totest/integration/auth.spec.ts
which expects theprocess.on
not be called with anMaxListenersExceededWarning
error.API Changes