From ba0dbaa1930db93a9e988ce1a525c8b2054a2970 Mon Sep 17 00:00:00 2001 From: Evan Lucas Date: Fri, 5 May 2017 06:10:43 -0500 Subject: [PATCH] Revert "net: remove unnecessary process.nextTick()" This reverts commit 571882c5a45872ac67e4e29513c4c8f23af9f781. Removing the process.nextTick() call can prevent the consumer from being able to catch error events. PR-URL: https://github.com/nodejs/node/pull/12854 Fixes: https://github.com/nodejs/node/issues/12841 Reviewed-By: Colin Ihrig Reviewed-By: Benjamin Gruenbaum Reviewed-By: James M Snell Reviewed-By: Ben Noordhuis --- lib/net.js | 5 ++++- test/async-hooks/test-tcpwrap.js | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/net.js b/lib/net.js index a3d778a44886ca..67e191fa213329 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1005,7 +1005,10 @@ function lookupAndConnect(self, options) { // If host is an IP, skip performing a lookup var addressType = cares.isIP(host); if (addressType) { - internalConnect(self, host, port, addressType, localAddress, localPort); + nextTick(self[async_id_symbol], function() { + if (self.connecting) + internalConnect(self, host, port, addressType, localAddress, localPort); + }); return; } diff --git a/test/async-hooks/test-tcpwrap.js b/test/async-hooks/test-tcpwrap.js index cbad3f3ddf3ca6..0827779229297b 100644 --- a/test/async-hooks/test-tcpwrap.js +++ b/test/async-hooks/test-tcpwrap.js @@ -48,13 +48,16 @@ const server = net { port: server.address().port, host: server.address().address }, common.mustCall(onconnected)); const tcps = hooks.activitiesOfTypes('TCPWRAP'); - const tcpconnects = hooks.activitiesOfTypes('TCPCONNECTWRAP'); assert.strictEqual( tcps.length, 2, '2 TCPWRAPs present when client is connecting'); - assert.strictEqual( - tcpconnects.length, 1, - '1 TCPCONNECTWRAP present when client is connecting'); + process.nextTick(() => { + const tcpconnects = hooks.activitiesOfTypes('TCPCONNECTWRAP'); + assert.strictEqual( + tcpconnects.length, 1, + '1 TCPCONNECTWRAP present when client is connecting'); + }); + tcp2 = tcps[1]; assert.strictEqual(tcps.length, 2, '2 TCPWRAP present when client is connecting');