title: Triggering parallel of 1k HTTP requests would get stuck
body: <p>The question is what is actually happening when you trigger 1k-2k outgoing HTTP requests? 
  I see that it would resolve all the connections easily with 500 connections but moving up towards from there seems to cause problems as the connections are left open and Node app would be stuck there. Tested with local server + example Google and other mock servers.</p>
  
  <p>So with some <em>different server</em> endpoints I did receive reason: read ECONNRESET which is fine the server couldn't handle the request and throw an error. In 1k-2k request range the program would just hang. When you check the open connections with <code>lsof -r 2 -i -a</code> you could see that there are some X amount of connections that keep hanging there <code>0t0 TCP 192.168.0.20:54831-&gt;lk-in-f100.1e100.net:https (ESTABLISHED)</code>. When you add timeout setting to requests these would probably end up with timeout error, but why otherwise the connection is kept up forever and the main program would end up in some limbo state?</p>
  
  <p>Example code:</p>
  
  <pre><code>import fetch from 'node-fetch';
  
  (async () =&gt; {
    const promises = Array(1000).fill(1).map(async (_value, index) =&gt; {
      const url = 'https://google.com';
      const response = await fetch(url, {
        // timeout: 15e3,
        // headers: { Connection: 'keep-alive' }
      });
      if (response.statusText !== 'OK') {
        console.log('No ok received', index);
      }
      return response;
    })
  
    try {
      await Promise.all(promises);
    } catch (e) {
      console.error(e);
    }
    console.log('Done');
  })();
  </code></pre>