From b70fb43427b47df079b55929ec8956f69cbda966 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Mon, 6 Dec 2021 19:54:44 +0000 Subject: [PATCH] fix: increase maxlisteners on event target (#1050) Sometimes you encounter peers with lots of addresses. When this happens you can attach more than 10x event listeners to the abort signal we use to abort all the dials - this causes node to print a warning which is misleading. This PR increases the default number of listeners on the signal. Fixes #900 --- src/dialer/dial-request.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/dialer/dial-request.js b/src/dialer/dial-request.js index 3f6fc18a..707f4e21 100644 --- a/src/dialer/dial-request.js +++ b/src/dialer/dial-request.js @@ -1,11 +1,12 @@ 'use strict' const errCode = require('err-code') -const AbortController = require('abort-controller').default const { anySignal } = require('any-signal') // @ts-ignore p-fifo does not export types const FIFO = require('p-fifo') const pAny = require('p-any') +// @ts-expect-error setMaxListeners is missing from the types +const { setMaxListeners } = require('events') /** * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection @@ -59,7 +60,12 @@ class DialRequest { const tokenHolder = new FIFO() tokens.forEach(token => tokenHolder.push(token)) - const dialAbortControllers = this.addrs.map(() => new AbortController()) + const dialAbortControllers = this.addrs.map(() => { + const controller = new AbortController() + setMaxListeners && setMaxListeners(Infinity, controller.signal) + + return controller + }) let completedDials = 0 try {