When I load Blue Ocean pages in some number of tabs higher than just a few, I frequently get Connection Lost, the page greys out and then some time later, the page will be refreshed.
Using the Developer Tools in Chrome, I can see this happens when BO sends some number of ping tests to /sse-gateway/ping and gets no response.
At the same time, I see in the DevTools page that BO also does GETs to /sse-gateway/listen/jenkins-blueocean-core-js-1606150615722-xo4mdf which take a minimum of 30s and up to a minute in some cases to return.
It seems like it would be very bad for BO to tie up sockets doing fetches that take no less than 30s given that modern browsers limit the number of concurrent sockets per server. For Chrome this is 6. So all it would take is for 6 BO pages open, tied up in one of these 30s fetches before a seventh tab gets starved of a socket to the server, and, say, sends such a /sse-gateway/ping and gets no response, decides the connection is lost and goes through the page refresh rigmarole, using up more sockets and starving other BO pages which then do the same thing. This feels like it can lead to spiralling death of all open BO pages when more than just a small few are open.
Ultimately, these 30s long fetches must prevent BO from scaling beyond more than just a few tabs.