Skip to content

MaxListenersExceededWarning when running globally-installed speed-cloudflare-cliΒ #33

@sbs44

Description

@sbs44

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions