speed-cloudflare-cli icon indicating copy to clipboard operation
speed-cloudflare-cli copied to clipboard

MaxListenersExceededWarning when running globally-installed speed-cloudflare-cli

Open sbs44 opened this issue 2 months ago • 0 comments

Description

When speed-cloudflare-cli is installed globally via npm and run directly, the following warnings appear:

npm install -g speed-cloudflare-cli
speed-cloudflare-cli

Note: This issue does NOT occur when running npx speed-cloudflare-cli, only with the globally-installed version.

Before (with warnings)

(node:8234) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 lookup listeners added to [TLSSocket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:8234) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 connect listeners added to [TLSSocket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:8234) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 secureConnect listeners added to [TLSSocket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
 Server location: Miami (MIA)
         Your IP: [REDACTED] (US)
         Latency: 6.80 ms
          Jitter: 3.26 ms
     100kB speed: 442.46 Mbps
       1MB speed: 378.82 Mbps
      10MB speed: 375.82 Mbps
      25MB speed: 375.44 Mbps
     100MB speed: 370.95 Mbps
  Download speed: 456.72 Mbps
    Upload speed: 122.47 Mbps

After (no warnings)

 Server location: Miami (MIA)
         Your IP: [REDACTED] (US)
         Latency: 35.96 ms
          Jitter: 3.24 ms
     100kB speed: 124.51 Mbps
       1MB speed: 271.76 Mbps
      10MB speed: 360.63 Mbps
      25MB speed: 369.78 Mbps
     100MB speed: 359.08 Mbps
  Download speed: 369.30 Mbps
    Upload speed: 81.14 Mbps

Root Cause

The speed test attaches 3 event listeners (lookup, connect, secureConnect) to each socket for performance timing measurements. With 77 total requests during a complete test run (20 latency + 29 download + 28 upload), this exceeds Node.js's default 10-listener limit per event type, triggering the warning.

This is a false positive since:

  • Listeners are short-lived and properly cleaned up after each request
  • The CLI is short-lived and exits after completion
  • Memory impact is negligible

Solution

Set socket.setMaxListeners(100) to accommodate all event listeners with buffer for future changes.

sbs44 avatar Nov 13 '25 18:11 sbs44