New issue
Advanced search Search tips

Issue 873214 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 876103
Owner:
Closed: Aug 27
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression

Blocked on:
issue 875995



Sign in to add a comment

NOTREACHED in page_scheduler_impl.cc

Project Member Reported by w...@chromium.org, Aug 10

Issue description

Chrome Version: 69.0.3497.21
OS: ChromeOS

What steps will reproduce the problem?
[Sorry, no idea what triggers this; it is scattered through my Chrome log]

What is the expected result?

Expect Chrome log file to contain no NOTREACHED() messages (these will be crashes in future!).

What happens instead?

Log has a number of messages:

[1:1:0808/182141.574504:ERROR:page_scheduler_impl.cc(632)] NOTREACHED() hit.

Marking as P1/M69, since we should not be hitting NOTREACHED()s, by definition.
 
Cc: -shaseley@google.com
Owner: shaseley@google.com
Status: Started (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 13

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

commit fd47d8d8c8dbcecce33609d61d967cd97f036cd9
Author: Scott Haseley <shaseley@google.com>
Date: Mon Aug 13 21:43:36 2018

[scheduler] Replace DCHECK for frozen and visible state with DumpWithoutCrashing

Changing the DCHECK that checks for the page scheduler being frozen when
the page is visible to DumpWithoutCrashing to collect more crash dump data.

Bug:  873214 
Change-Id: I0f10ef13b0cf790cb38189273adf1ddc03030fc2
Reviewed-on: https://chromium-review.googlesource.com/1172709
Commit-Queue: Scott Haseley <shaseley@google.com>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582713}
[modify] https://crrev.com/fd47d8d8c8dbcecce33609d61d967cd97f036cd9/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 14

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

commit a59dbcd6173c7ec331289ac3906017f321801c83
Author: Scott Haseley <shaseley@google.com>
Date: Tue Aug 14 19:37:06 2018

Revert "[scheduler] Replace DCHECK for frozen and visible state with DumpWithoutCrashing"

This reverts commit fd47d8d8c8dbcecce33609d61d967cd97f036cd9.

Reason for revert: Collected sufficient initial crash reports.

Original change's description:
> [scheduler] Replace DCHECK for frozen and visible state with DumpWithoutCrashing
> 
> Changing the DCHECK that checks for the page scheduler being frozen when
> the page is visible to DumpWithoutCrashing to collect more crash dump data.
> 
> Bug:  873214 
> Change-Id: I0f10ef13b0cf790cb38189273adf1ddc03030fc2
> Reviewed-on: https://chromium-review.googlesource.com/1172709
> Commit-Queue: Scott Haseley <shaseley@google.com>
> Reviewed-by: Alexander Timin <altimin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#582713}

TBR=altimin@chromium.org,shaseley@google.com

Change-Id: If15864678725a3939f5e0e03ddd4bcb97d220dcf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  873214 
Reviewed-on: https://chromium-review.googlesource.com/1175011
Reviewed-by: Nate Chapin <japhet@chromium.org>
Commit-Queue: Scott Haseley <shaseley@google.com>
Cr-Commit-Position: refs/heads/master@{#582996}
[modify] https://crrev.com/a59dbcd6173c7ec331289ac3906017f321801c83/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc

This NOTREACHED is triggered if attempting to freeze a visible page, which is not allowed.

On the browser side, a tab is only frozen if WebContents::GetVisibility() == Visibility::VISIBLE. This NOTREACHED fires if this is out-of-sync with the page visibility on the blink side. The page visibility (blink) is controlled by 2 IPC messages corresponding to RenderWidgetHostImpl::Was[Shown|Hidden] and WebContents::Was[Shown|Hidden]. If RenderWidgetHostImpl::Was[Shown|Hidden] without the WebContents changing its visibility state, then the visibility state in WebContents and page scheduler will be out-of-sync.

Example: freezing a page while the WebContents is being captured:

Setup:
  1. Lower ProactiveTabFreezeAndDiscard freeze timeout (I hard-coded the default to 20 sec.)
  2. Disable site-characteristic-database (so more pages are eligible for freezing)
  3. Make sure proactive-tab-freeze-and-discard is enabled

Triggering freezing while visible (page scheduler perspective):
  1. Open two windows (one tab will be occluded, the other visible)
  2. Hold alt-tab (capturing begins)
  3. ...wait until freeze timeout expires...
  4. Occluded tab is frozen and NOTREACHED() fires
Blockedon: 875995
Owner: panicker@chromium.org
panicker@ - not sure if you want to have this block on crbug.com/876103 or not.
Mergedinto: 876103
Status: Duplicate (was: Started)
Yes we can just dup it to crbug/876103 as that's all that's remaining now (a fix was already merged on our side).
Labels: -M-69 M-70
Changing target to M70 as a (smaller) fix was already merged for M69 (crbug/875995)

Sign in to add a comment