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>
This commit is contained in:
parent
5c6c02996b
commit
aa8655a0da
@ -1558,7 +1558,8 @@ Server.prototype.getConnections = function(cb) {
|
|||||||
const self = this;
|
const self = this;
|
||||||
|
|
||||||
function end(err, connections) {
|
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) {
|
if (!this._usingSlaves) {
|
||||||
|
11
test/async-hooks/test-net-get-connections.js
Normal file
11
test/async-hooks/test-net-get-connections.js
Normal file
@ -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…
x
Reference in New Issue
Block a user