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

Blackscreen when using dev tools

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36

Steps to reproduce the problem:
1. Open any website and press F12
2. Put a breakpoint in a JS file
3. Trigger the breakpoint
4. After 5 secondes, both devtool and main window turn black for 10+ seconds then works as usual

What is the expected behavior?
After triggering the breakpoint, devtools should wait for upcoming user actions (step in, step out, etc...)

What went wrong?
Every chrome window turns black preventing any user action for a few seconds. Turning off GPU acceleration doesn't trigger this bug.

Did this work before? Yes Latest 68.XXXX build

Chrome version: 69.0.3497.81  Channel: stable
OS Version: 10.0
Flash Version:
 
Labels: Needs-Bisect Needs-Triage-M69
Cc: vamshi.kommuri@chromium.org
Labels: Triaged-ET Needs-Feedback
Thanks for filing the issue!

Unable to reproduce the issue on reported chrome version 69.0.3497.81 using Windows 10 with the below mentioned steps.
1. Launched Chrome
2. Navigated to a random website
3. Inspected the page to open DevTools->Sources
4. Have set a Breakpoint to a JS file
5. Resumed the script execution
We neither observed blackscreen on main window nor in DevTools.

@Reporter: Could you please let us know if we have missed anything in the process. If the issue is specific to any JS file, then providing that particular file would help us to triage this issue in a better way.
I have the same issue. I suspect you may have been unable to replicate because of resuming execution too soon. My repro steps would be as follows:
1. Pause execution on any website.
2. Open the chrome task manager, and look at the memory being used by the GPU Process. For me, it gets higher and higher.
3. When the memory usage for the whole PC gets to about 95% (i.e. in windows task manager), the screen goes black for a couple of seconds. (I assume this means something is being reset to release the memory.)

Hope this helps.
Unfortunately I've found that my repro steps are not as reliable as I'd hoped. I've seen them work on various random websites, but I've also seen them not work. If it helps, http://bbc.co.uk/news is a page which seems to permit reliable replication of this bug. Once the page is loaded, I opened the Dev Tools and just paused execution. The GPU Process quickly ate up the available memory. I've attached a screen recording in case it helps.
chrome bug 881303 repro.mp4
2.0 MB View Download
Cc: pbomm...@chromium.org dgozman@chromium.org fs...@chromium.org pfeldman@chromium.org
Labels: M-69 Target-70 Target-71 M-71 M-70 Target-69
Tagging as "RBS" for tracking as this issue is under investigation.
Labels: ReleaseBlock-Stable
Cc: -fs...@chromium.org
Owner: fs...@chromium.org
Status: Assigned (was: Unconfirmed)
fserb@, pls reassign if needed. Thank you.
Cc: kbr@chromium.org vmi...@chromium.org sunn...@chromium.org pdr@chromium.org
+sunnyps@, pdr@, kbr@ & vmiura@ per internal group chat.

Also could this be related to any of the GPU bugs?
*  Bug 881824 
*  Bug 880901 
*  Bug 880620 
Cc: piman@chromium.org geoffl...@chromium.org ericrk@chromium.org
geofflang@, ericrk@: While investigating, it looks like discard-able memory handle managemnt is not implemented on the GPU-side for pass-through command buffer!

Doesn't this mean we will grow texture memory in an unbounded way on Windows with pass-through?
I was able to repro (sorta) by doing the following:
1. Go to vsynctester.com and open Chrome task manager in Options > More tools.
2. Set a breakpoint in the rafcallback function in index.html.
3. Keep clicking the "Resume script execution" button. Do *not* remove the breakpoint.

GPU process memory usage will go up every time you click.

See attached trace with "Javascript and rendering" and memory-infra turned on.

The leak is under the cc/image_memory/cache_xyz/gpu category. Several 4.7M images are leaked. They aren't linked to GPU process memory dumps. There is a hypothesis that this is because GPU discardable textures aren't implemented for passthrough command decoder.
trace_devtools_leak.json.gz
10.5 MB Download
Definitely due to passthrough command decoder. Both my repro and pfeldman's repro (hover around in devtools element selector on bbc.co.uk) fail with --use-cmd-decoder=validating.
Labels: -Pri-2 Pri-1
Owner: ----
Status: Available (was: Assigned)
Upgrading to P1 regression and unassigning as fserb@ is OOO. Not clear what the resolution should be - disabling the passthrough command decoder for 69 or aiming to fix this directly.

Passthrough command decoder was accidentally enabled by default everywhere by default (M69 onwards).  CL to revert that change is in CQ: https://chromium-review.googlesource.com/c/chromium/src/+/1213958

We should merge this to M69.

Note: Passthrough command decoder is separately in a 50-50 trial on canary, dev, and beta (M68+).  We will separately disable the trial on beta, but keep it on dev and canary.

Also note: Passthrough command decoder is enabled in fieldtrial_testing_config.json so it's enabled for waterfall and developer Chromium builds which is also expected.
Blockedon: 880620
Owner: sunn...@chromium.org
Status: Assigned (was: Available)
The other root cause of this bug is the same as  issue 880620 .  The fix for that also works for this problem.  However, we should still do the fix here.
Cc: gov...@chromium.org
govind@ the fix here has very little risk. I'll request a merge to 69 for this, but it's ok to not wait for canary for this one.  And even in canary, you'd be in a 50-50 finch trial so you wouldn't see the impact of this CL.
sunnyps@, the M69 merge request will be for this change - https://chromium-review.googlesource.com/c/chromium/src/+/1213958?
Labels: Merge-Request-69 Merge-Request-70
Yes.
Project Member

Comment 18 by sheriffbot@chromium.org, Sep 8

Labels: -Merge-Request-69 Merge-Review-69 Hotlist-Merge-Review
This bug requires manual review: Request affecting a post-stable build
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), kariahda@(iOS), cindyb@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Request-70 -Merge-Review-69 Merge-Approved-70 Merge-Approved-69
Approving merge for https://chromium-review.googlesource.com/c/chromium/src/+/1213958 to M69 branch 3497 and M70 branch 3538 based on comment #15. 
Project Member

Comment 20 by bugdroid1@chromium.org, Sep 8

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

commit 9456e9b9166e3e3f59d39ec49176458190d603b4
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Sat Sep 08 02:30:53 2018

Revert "Enable the passthrough command decoder by default on Windows."

This reverts commit 1140edbf8524def4ce5776ac31be39297900ab99.

Reason for revert: This enables the feature on stable by default and causes GPU memory usage to grow indefinitely because GPU discardable textures aren't implemented in passthrough. See  crbug.com/881303 

Original change's description:
> Enable the passthrough command decoder by default on Windows.
> 
> This ensures that the passthrough command decoder is tested on developer
> builds.
> 
> BUG=738568
> BUG=602688
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I3cb473c51d8c889f958827233ca67d6cf6b7fb04
> Reviewed-on: https://chromium-review.googlesource.com/1075507
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#562533}

TBR=geofflang@chromium.org,piman@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 738568, 602688,  881303 
Change-Id: I302775b317de7732753cd48fe9d470a35520679f
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1213958
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589757}
[modify] https://crrev.com/9456e9b9166e3e3f59d39ec49176458190d603b4/gpu/config/gpu_finch_features.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Sep 8

Labels: -merge-approved-69 merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f431eaf6c8dd78867a580dcc72ab3b3a868de44

commit 2f431eaf6c8dd78867a580dcc72ab3b3a868de44
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Sat Sep 08 03:30:09 2018

[merge to M69] Revert "Enable the passthrough command decoder by default on Windows."

This reverts commit 1140edbf8524def4ce5776ac31be39297900ab99.

Reason for revert: This enables the feature on stable by default and causes GPU memory usage to grow indefinitely because GPU discardable textures aren't implemented in passthrough. See  crbug.com/881303 

Original change's description:
> Enable the passthrough command decoder by default on Windows.
> 
> This ensures that the passthrough command decoder is tested on developer
> builds.
> 
> BUG=738568
> BUG=602688
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I3cb473c51d8c889f958827233ca67d6cf6b7fb04
> Reviewed-on: https://chromium-review.googlesource.com/1075507
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#562533}

TBR=geofflang@chromium.org,piman@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 738568, 602688,  881303 
Change-Id: I302775b317de7732753cd48fe9d470a35520679f
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1213958
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#589757}(cherry picked from commit 9456e9b9166e3e3f59d39ec49176458190d603b4)
Reviewed-on: https://chromium-review.googlesource.com/1214761
Cr-Commit-Position: refs/branch-heads/3497@{#913}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/2f431eaf6c8dd78867a580dcc72ab3b3a868de44/gpu/config/gpu_finch_features.cc

Status: Fixed (was: Assigned)
Project Member

Comment 23 by bugdroid1@chromium.org, Sep 8

Labels: -merge-approved-70 merge-merged-3538
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98613e3bbd612c2287b7d5ddc293633a54406ca8

commit 98613e3bbd612c2287b7d5ddc293633a54406ca8
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Sat Sep 08 03:31:12 2018

[merge to M70] Revert "Enable the passthrough command decoder by default on Windows."

This reverts commit 1140edbf8524def4ce5776ac31be39297900ab99.

Reason for revert: This enables the feature on stable by default and causes GPU memory usage to grow indefinitely because GPU discardable textures aren't implemented in passthrough. See  crbug.com/881303 

Original change's description:
> Enable the passthrough command decoder by default on Windows.
> 
> This ensures that the passthrough command decoder is tested on developer
> builds.
> 
> BUG=738568
> BUG=602688
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I3cb473c51d8c889f958827233ca67d6cf6b7fb04
> Reviewed-on: https://chromium-review.googlesource.com/1075507
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#562533}

TBR=geofflang@chromium.org,piman@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 738568, 602688,  881303 
Change-Id: I302775b317de7732753cd48fe9d470a35520679f
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1213958
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#589757}(cherry picked from commit 9456e9b9166e3e3f59d39ec49176458190d603b4)
Reviewed-on: https://chromium-review.googlesource.com/1214942
Cr-Commit-Position: refs/branch-heads/3538@{#184}
Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
[modify] https://crrev.com/98613e3bbd612c2287b7d5ddc293633a54406ca8/gpu/config/gpu_finch_features.cc

Thank you sunnyps@ for quick fix and merges to M69 & M70.

Also requesting a postmortem for this, pls see go/chrome-postmortems for more details. Thank you.


Tried checking the issue on reported chrome version 69.0.3497.81 using Windows 10 with the below mentioned steps.
1. Launched Chrome
2. Navigated to vsynctester.com and opened Chrome task manager.
3. Inspected the page -> DevTools -> Sources
4. We have set the breakpoint at rafcallback function in index.html
Observed the GPU process memory usage have increased drastically, but we didn't observed any black screen.

@Sunny Sachanandani: As we are unable to reproduce the issue from our end, could you please help us in verifying the fix.

Thanks!
 Issue 881708  has been merged into this issue.
Cc: phanindra.mandapaka@chromium.org
 Issue 881243  has been merged into this issue.
Cc: jmukthavaram@chromium.org susan.boorgula@chromium.org
 Issue 878391  has been merged into this issue.
69 current version (not respin) with finch config will show memory usage growing up to a cap

69 without finch will grow GPU memory indefinitely

69 respin will not show memory usage growing (because of the fix for 872117)

I just confirmed that 69 with finch config GPU process memory grows up to a cap 
the cap is 512 MB for image memory, so max total usage will be rest of GPU usage + this extra amount

also verified that GPU memory doesn't grow in latest canary, similar to what we expect from respin
Good news: 69.0.3497.92 is now available with the fix on Chrome Stable. You can force an update by visiting chrome://chrome. Thank you.
Thank you sunnyps@ for verifying this fix on M70 Dev# 70.0.3538.16.
Requesting a postmortem for this, pls see go/chrome-postmortems for more details.

Sign in to add a comment