From f39ad8a91fe43a4bfc427915a5bf2b749f00c048 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Wed, 21 Aug 2019 15:12:48 +0200 Subject: http: fix event listener leak Fixes: https://github.com/nodejs/node/issues/29239 PR-URL: https://github.com/nodejs/node/pull/29245 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Jiawen Geng Reviewed-By: Matteo Collina --- test/parallel/test-http-agent-keepalive.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'test/parallel/test-http-agent-keepalive.js') diff --git a/test/parallel/test-http-agent-keepalive.js b/test/parallel/test-http-agent-keepalive.js index 5902c58679..8cfc568b1e 100644 --- a/test/parallel/test-http-agent-keepalive.js +++ b/test/parallel/test-http-agent-keepalive.js @@ -52,7 +52,7 @@ function get(path, callback) { port: server.address().port, agent: agent, path: path - }, callback); + }, callback).on('socket', common.mustCall(checkListeners)); } function checkDataAndSockets(body) { @@ -134,3 +134,12 @@ server.listen(0, common.mustCall(() => { })); })); })); + +// Check for listener leaks when reusing sockets. +function checkListeners(socket) { + assert.strictEqual(socket.listenerCount('data'), 1); + assert.strictEqual(socket.listenerCount('drain'), 1); + assert.strictEqual(socket.listenerCount('error'), 1); + // Sockets have onReadableStreamEnd. + assert.strictEqual(socket.listenerCount('end'), 2); +} -- cgit v1.2.3