librespeed / speedtest

Self-hosted Speed Test for HTML5 and more. Easy setup, examples, configurable, mobile friendly. Supports PHP, Node, Multiple servers, and more
https://librespeed.org
GNU Lesser General Public License v3.0
12.23k stars 2.2k forks source link

Download test hangs on throttled connections in Firefox #435

Open palani-johnson opened 3 years ago

palani-johnson commented 3 years ago

Description

Download test on throttled connections in Firefox will hang until all requests fully come through. Even aborting the download test and restarting does not work, all previously started tests will have to complete first.

Server

Noticed it on my custom Flask server, but it also occurred on https://librespeed.org with the LA Clouvider server.

Client

Steps to reproduce

Expected behavior

In other browsers (Chromium, Edge) the test does not hang and throttling works properly

Screenshots

Hangs here for a couple minutes with "WiFi" throttling. This is about 30 seconds after the download test seems to have ended. Notice the uncompleted GET requests. Screenshot_20210929_155335

Eventually the requests start coming in. Other tests continue once all requests come in.

adolfintel commented 3 years ago

I can confirm this but I'm unable to find the cause.

The test hangs because the browser can only open 6 streams at the same time, but for some reason when throttling is enabled, firefox doesn't close the existing streams when the tests asks it to at the end of the test (here: https://github.com/librespeed/speedtest/blob/eca7f06e217b739e2c6cb14f3f4b4da9ea9be921/speedtest_worker.js#L415).

I'll try to investigate this further and see if I can find a workaround, but it's almost certainly a firefox bug. I remember using throttling a few years ago to test earlier versions of LS.