Uh oh!
There was an error while loading. Please reload this page.
[wasm] spread WS based timers over next 6 minutes to prevent heavy throttling - #57745
Conversation
ghost
commented
Aug 19, 2021
Right now, I'm not clear if 6 minutes is right time span. |
pavelsavara
commented
Aug 20, 2021
This is necessary infrastructure change for the automated test. It's still quite fragile. |
pavelsavara
commented
Aug 23, 2021
/azp run runtime-libraries-mono outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
bec2dfc to
043e566CompareNew xharness binaries are in. |
aa34508 to
42fc2eaComparepavelsavara
commented
Aug 25, 2021
/azp run runtime-libraries-mono outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
pavelsavara
commented
Aug 25, 2021
/azp run runtime-libraries-mono outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
pavelsavara
commented
Aug 25, 2021
/azp run runtime-libraries-mono outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
pavelsavara
commented
Aug 25, 2021
/azp run runtime-libraries-mono outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
pavelsavara
commented
Aug 25, 2021
Outerloop issue is |
kg
commented
Aug 25, 2021
IIRC there are ways to run chromium headless with a 'fake' framebuffer, window etc. Not sure which one we'd use here, or whether it would actually trigger this. Another option would be a headless X instance paired to VNC, I know people do that for tests sometimes. |
pavelsavara
commented
Aug 25, 2021
I just excluded the test from CI, making it manual test. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
pavelsavara
commented
Aug 26, 2021
/backport to release/6.0-rc1 |
Started backporting to release/6.0-rc1: https://github.com/dotnet/runtime/actions/runs/1169555771 |
Problem
Chromium browsers throttle
setTimeoutfrequency on inactive pages to 1 sec almost immediately.5 minutes later they throttle heavily to wakeup each 60 seconds.
That breaks dotnet
Timerexpectations and also threadpool.The heavy throttling could be lifted back to 1sec if there was WebSocket activity.
https://developer.chrome.com/blog/timer-throttling-in-chrome-88/#intensive-throttling
Implementation
The idea is to cover the future 6 minutes with "wakeup" timer, each 1 second apart from each other.
1 second, because is the light throttling rate, so it would not help to try to do it more often.
It should be triggered from WS event, so that it's only 1 deep from it.
Every subsequent call would schedule only for uncovered future.
There is
[OuterLoop]unit test for this.Fixes#51041