New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 606231 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Precache fetcher pool should enqueue urls to be fetched

Project Member Reported by rajendrant@chromium.org, Apr 25 2016

Issue description

DCHECK failure during manifest fetch, when there are more than 10 manifests/resources queued to be fetched. Happens if more than one top hosts are received.

FetcherPool should accept arbitrary number of URLs to be fetched and add to its queue. It should impose a maximum limit on the number of ongoing parallel fetches. It should start fetching queued URLs when ongoing fetch completes.

https://code.google.com/p/chromium/codesearch#chromium/src/components/precache/core/precache_fetcher.cc&l=353



04-22 17:57:48.620 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:328] precache task (precache) started
04-22 17:57:48.621 32401-32401/com.google.android.apps.chrome W/cr_PRECACHE: isPrecachingEnabled true
04-22 17:57:48.623 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:187] canceling a precache completion task
04-22 17:57:48.648 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:348] precache session has started
04-22 17:57:48.648 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:389] registered device state receiver
04-22 17:57:48.650 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:400] acquiring wake lock
04-22 17:57:48.652 32401-32401/com.google.android.apps.chrome W/cr_PRECACHE: start
04-22 17:57:48.652 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_launcher.cc(57)] PRECACHE Start
04-22 17:57:48.652 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(122)] PrecacheManager::StartPrecaching
04-22 17:57:48.652 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(102)] PRECACHE PrecachingAllowed
04-22 17:57:48.653 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(112)] PRECACHE PrecachingAllowed ALLOWED
04-22 17:57:48.653 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(135)] PrecacheManager::StartPrecaching IsInExperimentGroup
04-22 17:57:48.662 32401-32401/com.google.android.apps.chrome V/cr_Precache: [PrecacheController.java:97] conditions changed: precaching(true), powered(true), unmetered(true)
04-22 17:57:48.667 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(294)] PrecacheManager top host yahoo.com
04-22 17:57:48.667 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(294)] PrecacheManager top host en.m.wikipedia.org
04-22 17:57:48.668 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(286)] PrecacheFetcher()
04-22 17:57:48.668 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(326)] PrecacheFetcher::Start https://www.gstatic.com/chrome/wifiprefetch/precache_config
04-22 17:57:48.668 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(332)] Fetching https://www.gstatic.com/chrome/wifiprefetch/precache_config
04-22 17:57:48.668 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://www.gstatic.com/chrome/wifiprefetch/precache_config 2147483647
04-22 17:57:48.668 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(189)] PrecacheFetcher::LoadFromNetwork
04-22 17:57:48.804 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(102)] PRECACHE PrecachingAllowed
04-22 17:57:48.804 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(112)] PRECACHE PrecachingAllowed ALLOWED
04-22 17:57:48.807 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(396)] PrecacheFetcher::OnConfigFetchComplete
04-22 17:57:48.807 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(472)] PrecacheFetcher::UpdateStats 4 234
04-22 17:57:48.807 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(367)] StartNextManifestFetch https://www.gstatic.com/chrome/wifiprefetch/hosts/yahoo.com
04-22 17:57:48.807 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://www.gstatic.com/chrome/wifiprefetch/hosts/yahoo.com 2147483647
04-22 17:57:48.807 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(189)] PrecacheFetcher::LoadFromNetwork
04-22 17:57:48.908 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(102)] PRECACHE PrecachingAllowed
04-22 17:57:48.909 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_manager.cc(112)] PRECACHE PrecachingAllowed ALLOWED
04-22 17:57:48.912 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(439)] PrecacheFetcher::OnManifestFetchComplete
04-22 17:57:48.912 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(472)] PrecacheFetcher::UpdateStats 2939 3005
04-22 17:57:48.915 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/kx/yucs/uh3s/promo-ff/1/images/ff_icon-compressed.png
04-22 17:57:48.915 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/kx/yucs/uh3s/promo-ff/1/images/ff_icon-compressed.png 500000
04-22 17:57:48.915 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.915 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/rq/darla/2-9-9/js/g-r-min.js
04-22 17:57:48.915 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/rq/darla/2-9-9/js/g-r-min.js 500000
04-22 17:57:48.916 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.922 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg
04-22 17:57:48.922 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/os/yc/pt/icons/fuji-loader-v2-blue.0.svg 500000
04-22 17:57:48.922 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.923 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/zz/combo?ss/rapid-3.29.1.js
04-22 17:57:48.923 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/zz/combo?ss/rapid-3.29.1.js 500000
04-22 17:57:48.923 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.923 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://www.yahoo.com/polyfill.min.js?features=locale-data-en-us%2Carray.isarray%2Carray.prototype.every%2Carray.prototype.foreach%2Carray.prototype.indexof%2Carray.prototype.map%2Cdate.now%2Cfunction.prototype.bind%2Cobject.keys%2Cstring.prototype.trim%2Cobject.defineproperty%2Cobject.defineproperties%2Cobject.create%2Cobject.freeze%2Carray.prototype.filter%2Carray.prototype.reduce%2Cobject.assign%2Cpromise%2Crequestanimationframe%2Carray.prototype.some%2Cobject.getownpropertynames%2Cintl&version=2.1.22
04-22 17:57:48.923 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://www.yahoo.com/polyfill.min.js?features=locale-data-en-us%2Carray.isarray%2Carray.prototype.every%2Carray.prototype.foreach%2Carray.prototype.indexof%2Carray.prototype.map%2Cdate.now%2Cfunction.prototype.bind%2Cobject.keys%2Cstring.prototype.trim%2Cobject.defineproperty%2Cobject.defineproperties%2Cobject.create%2Cobject.freeze%2Carray.prototype.filter%2Carray.prototype.reduce%2Cobject.assign%2Cpromise%2Crequestanimationframe%2Carray.prototype.some%2Cobject.getownpropertynames%2Cintl&version=2.1.22 500000
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/os/ri/2.0.1/en.js
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/os/ri/2.0.1/en.js 500000
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/cd/assets/chartbeat_yahoo.js
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/cd/assets/chartbeat_yahoo.js 500000
04-22 17:57:48.924 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.925 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/zz/combo?os/yc/css/custom.1cd617b3.css&os/yc/css/bundle.acd0f425.css&os/yc/css/atomic-desktop-ltr.67170596.css&os/yc/css/atomic-context.555c7f3b.css&os/yc/css/patch.cd698090.css&os/yc/css/theme.ebdc52e6.css&os/fuji-style/css/fuji-rollup.min.846205e3.css&os/yc/css/content-canvas.67e84b7e.css
04-22 17:57:48.925 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/zz/combo?os/yc/css/custom.1cd617b3.css&os/yc/css/bundle.acd0f425.css&os/yc/css/atomic-desktop-ltr.67170596.css&os/yc/css/atomic-context.555c7f3b.css&os/yc/css/patch.cd698090.css&os/yc/css/theme.ebdc52e6.css&os/fuji-style/css/fuji-rollup.min.846205e3.css&os/yc/css/content-canvas.67e84b7e.css 500000
04-22 17:57:48.925 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.926 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/zz/combo?os/yaft/yaft-0.3.6.min.js&os/yaft/yaft-plugin-aftnoad-0.1.3.min.js&os/yc/js/main.2055099a8788d20567e0.min.js
04-22 17:57:48.926 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/zz/combo?os/yaft/yaft-0.3.6.min.js&os/yaft/yaft-plugin-aftnoad-0.1.3.min.js&os/yc/js/main.2055099a8788d20567e0.min.js 500000
04-22 17:57:48.926 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.929 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(346)] StartNextResourceFetch https://s.yimg.com/os/yc/js/9.2055099a8788d20567e0.min.js
04-22 17:57:48.930 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(167)] PrecacheFetcher::Fetcher https://s.yimg.com/os/yc/js/9.2055099a8788d20567e0.min.js 500000
04-22 17:57:48.931 32401-32401/com.google.android.apps.chrome E/chromium: [ERROR:precache_fetcher.cc(177)] PrecacheFetcher::LoadFromCache
04-22 17:57:48.990 32401-32401/com.google.android.apps.chrome A/chromium: [FATAL:precache_fetcher.cc(363)] Check failed: pool_.IsAvailable(). There are no available parallel requests to fetch the next manifest. Did you forget to call Delete?
                                                                          #00 0x868cfc9d /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x0028dc9d
                                                                          #01 0x88dac441 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x0276a441
                                                                          #02 0x88dac581 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x0276a581
                                                                          #03 0x88dad057 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x0276b057
                                                                          #04 0x88daba6b /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x02769a6b
                                                                          #05 0x86a26817 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x003e4817
                                                                          #06 0x86a267ab /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x003e47ab
                                                                          #07 0x86a7af27 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x00438f27
                                                                          #08 0x86a7ad43 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x00438d43
                                                                          #09 0x86a7ab81 /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x00438b81
                                                                          #10 0x86a7aa4d /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x00438a4d
                                                                          #11 0x8690917f /data/app/com.google.android.apps.chrome-2/lib/arm/libchrome.so+0x002c717f
                                                                          #12 0xa06138d5 /data/app/com.google.android.apps.chrome-2/oat/arm/base.odex+0x00fd18d5
 
Components: Internals>Network>DataProxy

Comment 2 by bengr@chromium.org, Apr 25 2016

Labels: M-52

Comment 3 by bengr@chromium.org, Apr 25 2016

Cc: jamartin@chromium.org
Labels: Precache
Project Member

Comment 4 by sheriffbot@chromium.org, Jun 1 2016

Labels: -M-52 M-53 MovedFrom-52
Moving this nonessential bug to the next milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 5 by bengr@chromium.org, Jun 2 2016

The code functions, but this DCHECK issue should be fixed.

Comment 6 by bengr@chromium.org, Jun 2 2016

Labels: -Pri-2 -M-53 M-52 Pri-1
It looks like a real bug that we should fix for M-52. We should not add a manifest if the pool is full. i.e., we should return early if the pool is already full here: https://code.google.com/p/chromium/codesearch#chromium/src/components/precache/core/precache_fetcher.cc&l=407


Labels: -MovedFrom-52
Status: Started (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 12 2016

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

commit b2754f713e984d267353ce00d8a9e5ff6a6fafae
Author: rajendrant <rajendrant@chromium.org>
Date: Sun Jun 12 04:44:27 2016

Precache manifest should not be added to fetcher pool which is full

Fetcher pool accepts limited number of requests which are fetched in
parallel. If the pool is full, precache manifest resources should not be
added to it.

BUG= 606231 

Review-Url: https://codereview.chromium.org/2037903002
Cr-Commit-Position: refs/heads/master@{#399387}

[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/fetcher_pool.h
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher.cc
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher.h
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 15 2016

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

commit b2754f713e984d267353ce00d8a9e5ff6a6fafae
Author: rajendrant <rajendrant@chromium.org>
Date: Sun Jun 12 04:44:27 2016

Precache manifest should not be added to fetcher pool which is full

Fetcher pool accepts limited number of requests which are fetched in
parallel. If the pool is full, precache manifest resources should not be
added to it.

BUG= 606231 

Review-Url: https://codereview.chromium.org/2037903002
Cr-Commit-Position: refs/heads/master@{#399387}

[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/fetcher_pool.h
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher.cc
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher.h
[modify] https://crrev.com/b2754f713e984d267353ce00d8a9e5ff6a6fafae/components/precache/core/precache_fetcher_unittest.cc

Labels: Merge-Request-52

Comment 11 by dimu@google.com, Jun 28 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Project Member

Comment 12 by bugdroid1@chromium.org, Jun 30 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad72f670be610f05a71251b012dd47d9e32c53a5

commit ad72f670be610f05a71251b012dd47d9e32c53a5
Author: Tarun Bansal <tbansal@google.com>
Date: Thu Jun 30 20:44:13 2016

Precache manifest should not be added to fetcher pool which is full

Fetcher pool accepts limited number of requests which are fetched in
parallel. If the pool is full, precache manifest resources should not be
added to it.

BUG= 606231 

Review-Url: https://codereview.chromium.org/2037903002
Cr-Commit-Position: refs/heads/master@{#399387}
(cherry picked from commit b2754f713e984d267353ce00d8a9e5ff6a6fafae)

Review URL: https://codereview.chromium.org/2119673002 .

Cr-Commit-Position: refs/branch-heads/2743@{#555}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/ad72f670be610f05a71251b012dd47d9e32c53a5/components/precache/core/fetcher_pool.h
[modify] https://crrev.com/ad72f670be610f05a71251b012dd47d9e32c53a5/components/precache/core/precache_fetcher.cc
[modify] https://crrev.com/ad72f670be610f05a71251b012dd47d9e32c53a5/components/precache/core/precache_fetcher.h
[modify] https://crrev.com/ad72f670be610f05a71251b012dd47d9e32c53a5/components/precache/core/precache_fetcher_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment