New issue
Advanced search Search tips

Issue 646127 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Crash when downloading a lot of duplicates

Project Member Reported by dewittj@chromium.org, Sep 12 2016

Issue description

Version: Chromium (55.0.2848.0)
commit: cd115ae669e4475f9478600506e2130c7dc4b98a
(from 9/8)

What steps will reproduce the problem?
(1) Navigate to a site (xkcd.com)
(2) Click the download button a bunch.
(3) Maybe go to downloads and back while they are downloading?
 
What is the expected output?
No crash

What do you see instead?
Crash

See attachment for stack trace.

Please use labels and text to provide additional information.

 
stack.txt
64.5 KB View Download
Somewhat more reliable repro steps:

1) Navigate to xkcd.com
2) Open downloads home
3) Click on downloaded page for xkcd.com
4) click "RELOAD" on snackbar
5) While the online page is loading, tap the download button a lot of times.

This is 100% repro for me.
This is the DCHECK that I hit:

[FATAL:prerendering_loader.cc(44)] Check failed: !session_contents_.get(). 


Owner: dougarnett@chromium.org
Status: Assigned (was: Untriaged)
This seems to be a case of PrerenderLoader being in IDLE state but hasn't reset the session_contents_ from previous request. I don't notice the cause yet from initial code inspection so will try repro.
I think it's possible if the adapter doesn't accept the StartPrerender request.
This can happen if prerendering request not accepted. 
So that will be easy fix but want to be sure not a higher level issue as well.
Looks like pretty interesting bug. There are various ways the prerender manager may not start prerendering - especially if other chrome activity is active. I've seen two instances of PrerenderContents::Init() not succeeding so far but looks like other prospects are possible as well. Our original assumption of starting in the background is no longer true. Will research more tomorrow. 
Maybe just PrerenderManager::HasRecentlyBeenNavigatedTo() is our culprit here.

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 13 2016

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

commit 5eeb4999bf5ea6f9d12d4c96e4285f97762085ae
Author: dougarnett <dougarnett@chromium.org>
Date: Tue Sep 13 18:59:31 2016

[Offline Pages] Fixes PrerenderingLoader bug to clear session_contents_ when PrerenderManager does not start prerendering after all.

BUG= 646127 

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

[modify] https://crrev.com/5eeb4999bf5ea6f9d12d4c96e4285f97762085ae/chrome/browser/android/offline_pages/prerendering_loader.cc
[modify] https://crrev.com/5eeb4999bf5ea6f9d12d4c96e4285f97762085ae/chrome/browser/android/offline_pages/prerendering_loader_unittest.cc

Status: Fixed (was: Assigned)
Verified in 55.0.2860.0
Status: Verified (was: Fixed)

Sign in to add a comment