Add failsafe mechanisms to resource scheduler |
|
Issue descriptionCurrently, it's possible that the resource scheduler in network may throttle a request for infinite time. This can happen if there are other requests in flight which are taking too long to finish (e.g., long polling XHRs). With more aggressive scheduling algorithms, this can lead to bugs such as Issue 891940 . We should add a fail-safe mechanism to resource scheduler which will dispatch queued requests to network after they have been queued for a long time. Dispatching such requests would allow the page load to proceed in the worst case. In the longer term, this will make it slightly safer to experiment with more aggressive scheduling algorithms.
,
Oct 26
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6c6b41bc6e815e06bb304e10074265138872aa9b commit 6c6b41bc6e815e06bb304e10074265138872aa9b Author: Tarun Bansal <tbansal@chromium.org> Date: Fri Oct 26 07:09:45 2018 Resource scheduler: Add experiment to dispatch long queued requests Add an experiment to dispatch requests that have been queued for a long time. This provides a fail-safe mechanism for requests to be eventually dispatched to the network in case the scheduler blocks them for too long behind long polling XHRs. Dispatching such requests would allow the page load to proceed. Cq-Include-Trybots: luci.chromium.try:linux_mojo Change-Id: I02e30452f243dcd6369540c360b2b462cf6b6ea7 Bug: 897371 Reviewed-on: https://chromium-review.googlesource.com/c/1285072 Commit-Queue: Tarun Bansal <tbansal@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Cr-Commit-Position: refs/heads/master@{#603017} [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/content/browser/loader/resource_dispatcher_host_unittest.cc [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/public/cpp/features.cc [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/public/cpp/features.h [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler.cc [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler.h [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler_params_manager.cc [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler_params_manager.h [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler_params_manager_unittest.cc [modify] https://crrev.com/6c6b41bc6e815e06bb304e10074265138872aa9b/services/network/resource_scheduler_unittest.cc
,
Oct 31
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/97509ce4df5bd9bd15dee289237d59edc99b6bae commit 97509ce4df5bd9bd15dee289237d59edc99b6bae Author: Tarun Bansal <tbansal@chromium.org> Date: Wed Oct 31 22:10:44 2018 ResourceScheduler: Add timer to dispatch requests queued for too long. Add a periodic timer that checks queued requests and may dispatch requests that have been queued for too long. This change is guarded behind a field trial. Change-Id: I43c85bd92b7a34c078f18fb87931806266f32813 Bug: 897371 Reviewed-on: https://chromium-review.googlesource.com/c/1303412 Commit-Queue: Tarun Bansal <tbansal@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Cr-Commit-Position: refs/heads/master@{#604406} [modify] https://crrev.com/97509ce4df5bd9bd15dee289237d59edc99b6bae/services/network/resource_scheduler.cc [modify] https://crrev.com/97509ce4df5bd9bd15dee289237d59edc99b6bae/services/network/resource_scheduler.h [modify] https://crrev.com/97509ce4df5bd9bd15dee289237d59edc99b6bae/services/network/resource_scheduler_unittest.cc |
|
►
Sign in to add a comment |
|
Comment 1 by bugdroid1@chromium.org
, Oct 24