Browse Source

async-hooks,net: ensure asyncId=null if no handle

If the .listen() hasn't been called on the server, there is no handle
object. In this case use null as the triggerAsyncId.

Fixes: https://github.com/nodejs/node/issues/13548
PR-URL: https://github.com/nodejs/node/pull/13938
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Andreas Madsen <amwebdk@gmail.com>
v6
Matt Sergeant 8 years ago
committed by Andreas Madsen
parent
commit
aa8655a0da
No known key found for this signature in database GPG Key ID: 2FEE61B3C9E40F20
  1. 3
      lib/net.js
  2. 11
      test/async-hooks/test-net-get-connections.js

3
lib/net.js

@ -1558,7 +1558,8 @@ Server.prototype.getConnections = function(cb) {
const self = this;
function end(err, connections) {
nextTick(self[async_id_symbol], cb, err, connections);
const asyncId = self._handle ? self[async_id_symbol] : null;
nextTick(asyncId, cb, err, connections);
}
if (!this._usingSlaves) {

11
test/async-hooks/test-net-get-connections.js

@ -0,0 +1,11 @@
'use strict';
const common = require('../common');
const net = require('net');
const server = net.createServer();
// This test was based on an error raised by Haraka.
// It caused server.getConnections to raise an exception.
// Ref: https://github.com/haraka/Haraka/pull/1951
server.getConnections(common.mustCall());
Loading…
Cancel
Save