New issue
Advanced search Search tips

Issue 897371 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Add failsafe mechanisms to resource scheduler

Project Member Reported by tbansal@chromium.org, Oct 19

Issue description

Currently, 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.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b71572c6db6237ed340961a40b429ce6472817f

commit 6b71572c6db6237ed340961a40b429ce6472817f
Author: Tarun Bansal <tbansal@chromium.org>
Date: Wed Oct 24 15:36:25 2018

Refactor ResourceSchedulerParamsManager

Refactor the method that sets the parameters for the resource
scheduler. This CL does not introduce any functionality
change.

Bug: 897371
Change-Id: I2018e8d5662a3481d7c32ee7342f82c976979836
Reviewed-on: https://chromium-review.googlesource.com/c/1297574
Reviewed-by: Matt Menke <mmenke@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602347}
[modify] https://crrev.com/6b71572c6db6237ed340961a40b429ce6472817f/services/network/resource_scheduler_params_manager.cc
[modify] https://crrev.com/6b71572c6db6237ed340961a40b429ce6472817f/services/network/resource_scheduler_params_manager.h

Project Member

Comment 2 by bugdroid1@chromium.org, 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

Project Member

Comment 3 by bugdroid1@chromium.org, 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