New issue
Advanced search Search tips

Issue 645654 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

Fallbacks from https to http update checks behave unexpectedly if x-retry-after header is used.

Project Member Reported by sorin@chromium.org, Sep 9 2016

Issue description

An update check initiated by the component updater may fail with Error::ERROR_UPDATE_RETRY_LATER. This is due to throttling of this update check because of a buggy timing implementation.

https://codereview.chromium.org/1740333002 introduced a mechanism for the component update checks to fallback from https to http (both with message signing) for reliability reasons. The rub for this change was the fallback must not happen for components which are privacy-sensitive, such as supervised whitelists. Therefore, the component updater creates two buckets of components (the ones which don't require wire privacy, and the ones which do), then it issues two concurrent update checks. The former can use fallbacks, the latter can't.

An unrelated feature in the component updater implements a cooldown mechanism for the update checks as a DDOS protection. This feature uses the time between successive requests to rejects requests coming in too "fast". The throttling code misuses the time, and rejects the second request made by the component updater for the privacy-sensitive components.
 

Comment 1 by sorin@chromium.org, Sep 12 2016

Summary: Fallbacks from https to http update checks behave unexpectedly if x-retry-after header is used. (was: Fallbacks from https to http update checks are flaky on Linux)
The presence of the x-retry-after header breaks a component updater assumption that it can bucketize components and issue two concurrent requests for updates.

In this case, due to a server configuration, the first request gets a x-retry-after=18000. This effectively blocks the second update check request for privacy-sensitive components.
You started fixing this bug over two years ago. Are you still working on it? 
Status: Assigned (was: Started)
I don't think so. Switching to assigned.

Sign in to add a comment