Closed Bug 1411132 Opened 7 years ago Closed 7 years ago

Enabling layout.display-list.retain causes tabs to crash in nsDisplayBackgroundColor::GetOpaqueRegion const

Categories

(Core :: Web Painting, defect)

58 Branch
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla58
Tracking Status
firefox-esr52 --- unaffected
firefox56 --- unaffected
firefox57 --- unaffected
firefox58 --- verified

People

(Reporter: pjohns33, Assigned: mattwoodrow)

References

()

Details

(Keywords: crash)

Crash Data

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0 Build ID: 20100101 Steps to reproduce: Set the value of layout.display-list.retain to true in about:config Visit any web page (either new ones or ones open prior to changing the setting). Actual results: Each tab will crash independently after spending 5-10 seconds on the site. Reproducible in a new profile. A few sample crashes ID's are listed below: bp-6815eff5-ed87-4a66-b95f-f475e0171024 bp-5c69d538-430e-41ba-af03-bf8190171024
Severity: normal → critical
Crash Signature: [@ nsDisplayBackgroundColor::GetOpaqueRegion const]
Component: Untriaged → Layout
Keywords: crash
Product: Firefox → Core
Summary: Enabling layout.display-list.retain causes tabs to crash → Enabling layout.display-list.retain causes tabs to crash in nsDisplayBackgroundColor::GetOpaqueRegion const
Status: UNCONFIRMED → NEW
Ever confirmed: true
Slightly different crash signature: [@ nsDisplayBackgroundColor::GetOpaqueRegion ] bp-3bf85398-9597-4fdd-b420-7ce350171024 bp-8ce21f3b-8b03-4915-aad7-4bfd20171024 bp-ef27b04d-af07-40a0-98f5-d3e8f0171024
Blocks: 1352499
Has STR: --- → yes
Thank you for the report. As building a partial display list requires information that is stored in-between paints, there is no easy/efficient way to support changing this preference on the fly. The attached patch changes the pref update policy to Once (which it should have been from the beginning), meaning changing it requires a restart.
Assignee: nobody → mikokm
Status: NEW → ASSIGNED
Component: Layout → Layout: Web Painting
Adding additional signatures in Socorro so that they refer back to this bug.
Crash Signature: [@ nsDisplayBackgroundColor::GetOpaqueRegion const] → [@ nsDisplayBackgroundColor::GetOpaqueRegion const] [@ nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion const]
OS: Unspecified → All
Hardware: Unspecified → All
(In reply to Marcia Knous [:marcia - use ni] from comment #4) > Adding additional signatures in Socorro so that they refer back to this bug. There are a fair number of people hitting some of these signatures starting with the 10-24 build. Are all of these people enabling the pref?
(In reply to Marcia Knous [:marcia - use ni] from comment #5) > (In reply to Marcia Knous [:marcia - use ni] from comment #4) > > Adding additional signatures in Socorro so that they refer back to this bug. > > There are a fair number of people hitting some of these signatures starting > with the 10-24 build. Are all of these people enabling the pref? The pref is disabled in all.js, so this should be the case. The pref was advertised on reddit yesterday, which would explain the numbers (in tens/hundreds).
Comment on attachment 8921511 [details] Bug 1411132 - Change layout.display-list.retain UpdatePolicy to Once https://reviewboard.mozilla.org/r/192538/#review197732
Attachment #8921511 - Flags: review?(matt.woodrow) → review+
Pushed by mikokm@gmail.com: https://hg.mozilla.org/integration/autoland/rev/cb757b237396 Change layout.display-list.retain UpdatePolicy to Once r=mattwoodrow
Crash Signature: [@ nsDisplayBackgroundColor::GetOpaqueRegion const] [@ nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion const] → [@ nsDisplayBackgroundColor::GetOpaqueRegion const] [@ nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion] [@ InvalidArrayIndex_CRASH | nsDisplayBackgroundColor::GetOpaqueRegion const] [@ …
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
The crash signatures: - "nsDisplayBackgroundColor::GetOpaqueRegion" (28 crashes, see [1]); - "nsDisplayBackgroundColor::GetOpaqueRegion const" (14 crashes, see [2]); - "nsStyleImage::IsResolved" (4 crashes, see [3]) are still there in nightly 58 with buildid 20171025100449. [1] http://bit.ly/2h9vLpB [2] http://bit.ly/2i4rpje [3] http://bit.ly/2gKmx6D
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Reproduced on a clean profile. 1. Open the following website: https://www.neowin.net/news/iphone-x-shows-up-in-new-video-showing-off-its-stutter-free-app-switching 2. Play the linked twitter video 3. Flickering, followed by a crash. If it doesn't try moving the mouse on and off the video. Crash report id: c9466721-695b-456b-afb7-6b5c50171026
:mattwoodrow, could you investigate please ?
Flags: needinfo?(matt.woodrow)
This is the #2 Mac topcrash in Nightly 20171027100103, with 18 occurrences across several installations, which is pretty high for Mac Nightly.
And the #3 Linux topcrash in the same Nightly.
We need to make sure we run the merge algorithm for reused old items, even when they don't have a matching new item. There can be an item in the sublist that is invalidated (and didn't get a new matching item created), and we need to make sure we find and remove it. This fixes the crash, and bug 1411881 fixes the flicking.
Assignee: mikokm → matt.woodrow
Flags: needinfo?(matt.woodrow)
Attachment #8923255 - Flags: review?(ethlin)
Attachment #8923255 - Flags: review?(ethlin) → review+
Pushed by mwoodrow@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/f26525123e6a Always recurse into merging for sub-lists, even when there isn't a matching new item, so that we find all items that need invalidating. r=ethanlin
Pushed by mwoodrow@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/dd40c8a5af54 Always recurse into merging for sub-lists, even when there isn't a matching new item, so that we find all items that need invalidating. r=ethanlin
Status: REOPENED → RESOLVED
Closed: 7 years ago7 years ago
Resolution: --- → FIXED
Flags: qe-verify+
I have managed to reproduce the issue described in comment 0 by following the steps provided in comment 11 using Firefox 58.0a1 (BuildId:20171023220222) This issue is verified fixed using Firefox 58.0b5 (BuildId:20171120142222) on Windows 10 64bit, macOS 10.12.6 and Ubuntu 16.04 64bit.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Regressions: 1707170
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: