New issue
Advanced search Search tips

Issue 769421 link

Starred by 1 user

Issue metadata

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


Participants' hotlists:
PF-DL-bugs


Sign in to add a comment

Investigate high rate of DOWNLOAD_MAX_ATTEMPTS_REACHED

Project Member Reported by dewittj@chromium.org, Sep 27 2017

Issue description

In the prefetching system, we assume that DownloadService can reliably download files.  Because of this, we don't usually retry downloads.

However, if we notice that we started a download but on the next startup of DownloadService can't find that download in the list of finished or active downloads, we will restart it.  We expect this to be a rare case because it means Chrome exited unexpectedly between the commit to our DB and the commit to the DS' DB.

This is at 10% of all records, and close to 15% of all URLs that reach the download phase, and definitely represents a bug at this level.
 
https://uma.googleplex.com/variations?sid=b1be6f542e5a050ebc0a826379cfe8bb has supporting evidence for the numbers above.

Additionally, we see large numbers (14.02% of download service StartResult) of BACKOFF responses from the DL service.  This is also indicative of a bug because our internal logic limits concurrent downloads to 2.

Current working hypothesis is that the arguments to Client::OnServiceInitialized are either incorrect or incorrectly interpreted.  This would cause us to believe that downloads disappeared, and continue to ask downloads until BACKOFF is received.  At that point our records would be cancelled with DOWNLOAD_FAILED.
Cc: jianli@chromium.org
https://cs.chromium.org/chromium/src/chrome/browser/offline_pages/prefetch/offline_prefetch_download_client.cc?rcl=c56e4960d8d090c50e5a2e296f78af8e03bf2dc9&l=31

is where we determine whether downloads are outstanding or still pending.
Labels: -Pri-3 Pri-1

Comment 4 by dah...@chromium.org, Sep 28 2017

Status: Assigned (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 10 2017

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

commit c33917fbf11cb84f73420c11f15d731b93a0b9b6
Author: Justin DeWitt <dewittj@chromium.org>
Date: Tue Oct 10 07:13:02 2017

Offline Pages: Downloader should not allow multiple reconciliation.

The downloader keeps track of when the download service starts, and
calls back to the dispatcher when reconciliation is appropriate. This
fixes an issue where reconciliation happened multiple times within
a single run of Chrome and so we were forgetting about downloads that
had been started during that run.

Bug: 769421
Change-Id: Iedbf6eab0414acc433c07d55e485e0632e4ad5af
Reviewed-on: https://chromium-review.googlesource.com/707928
Reviewed-by: Dmitry Titov <dimich@chromium.org>
Commit-Queue: Dmitry Titov <dimich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507608}
[modify] https://crrev.com/c33917fbf11cb84f73420c11f15d731b93a0b9b6/components/offline_pages/core/prefetch/prefetch_downloader_impl.cc
[modify] https://crrev.com/c33917fbf11cb84f73420c11f15d731b93a0b9b6/components/offline_pages/core/prefetch/prefetch_downloader_impl.h
[modify] https://crrev.com/c33917fbf11cb84f73420c11f15d731b93a0b9b6/components/offline_pages/core/prefetch/prefetch_downloader_impl_unittest.cc
[modify] https://crrev.com/c33917fbf11cb84f73420c11f15d731b93a0b9b6/components/offline_pages/core/prefetch/test_prefetch_dispatcher.cc
[modify] https://crrev.com/c33917fbf11cb84f73420c11f15d731b93a0b9b6/components/offline_pages/core/prefetch/test_prefetch_dispatcher.h

Sign in to add a comment