Timeout not honored (program hang?) on some websites
On some websites mio_httpc v0.9.4 fails to uphold the timeout configured to 40 seconds and gets killed by an external watchdog after 60 seconds in my tests.
There's 2045 such occurrences in my test of the top million websites (I'm using Tranco list generated on the 3rd of February).
Archive with test tool output for all occurrences: mio_httpc-hangs.tar.gz
Code used for testing: https://github.com/Shnatsel/rust-http-clients-smoke-test/blob/8e3285a45e1d657744a2697ced1bd8461031fb86/mio_httpc-smoke-test/src/main.rs
Similar issues have been observed in other clients on long redirect chains; in that case the clients used to reset the timeout on every redirection.
Those websites mostly redirect to themselves. I added a check so it errors out in this case in 0.9.5.
I do see that there is a weakness in the timeout handling. Redirects will reset the internal clock. This has not been changed so I will leave the issue open.