stylo: Assertion failure: aRestyleHint == 0 in dom/xbl/crashtests/493123-1.xhtml

RESOLVED FIXED in Firefox 54

Status

()

Core
CSS Parsing and Computation
RESOLVED FIXED
10 months ago
9 months ago

People

(Reporter: manishearth, Assigned: Bobby Holley (parental leave - send mail for anything urgent))

Tracking

(Blocks: 1 bug)

unspecified
mozilla54
Points:
---

Firefox Tracking Flags

(firefox54 fixed)

Details

Attachments

(2 attachments)

(Reporter)

Description

10 months ago
Created attachment 8842186 [details]
backtrace

(marking the test as skip for now)

Top of the stack:

Assertion failure: aRestyleHint == 0, at /Users/manishearth/mozilla/higgsino/layout/base/ServoRestyleManager.cpp:52
LLVM ERROR: IO failure on output stream.
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: internal objdump command failed
#01: mozilla::ServoRestyleManager::PostRestyleEvent(mozilla::dom::Element*, nsRestyleHint, nsChangeHint) (ServoRestyleManager.cpp:52, in XUL)
#02: mozilla::RestyleManager::PostRestyleEvent(mozilla::dom::Element*, nsRestyleHint, nsChangeHint) (RestyleManagerInlines.h:24, in XUL)
#03: nsIPresShell::RestyleForCSSRuleChanges() (PresShell.cpp:4583, in XUL)
#04: mozilla::PresShell::EndUpdate(nsIDocument*, unsigned int) (PresShell.cpp:2500, in XUL)

(Full backtrace attached)


13:54 < bholley> Manishearth: the basic problem in your stack is that frame reconstruction causes XBL to be uninstalled, which alters the set of stylesheets
I think we should just allow restyle hints to be posted during change hint processing. I'll attach a patch.
Assignee: nobody → bobbyholley
Created attachment 8842699 [details] [diff] [review]
Allow restyle hints to be posted during change hint handling. v1

MozReview-Commit-ID: 6ZU24tLQCjV
Attachment #8842699 - Flags: review?(emilio+bugs)
Comment on attachment 8842699 [details] [diff] [review]
Allow restyle hints to be posted during change hint handling. v1

Review of attachment 8842699 [details] [diff] [review]:
-----------------------------------------------------------------

r=me, though I hope we could have stronger assertions about how layout and style interact, sigh.

Thanks for fixing this! :)

::: layout/base/ServoRestyleManager.cpp
@@ +379,5 @@
>  
> +
> +  // Perform the Servo traversal, and the post-traversal if required. We do this
> +  // in a loop because certain rare paths in the frame constructor (like
> +  // uninstalling XBL bindings) can trigger additional style validations.

This is pretty unfortunate :(.
Attachment #8842699 - Flags: review?(emilio+bugs) → review+

Comment 4

10 months ago
Pushed by bholley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1029e1a5b03d
Allow restyle hints to be posted during change hint handling. r=emilio
Duplicate of this bug: 1339091

Comment 6

9 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/1029e1a5b03d
Status: NEW → RESOLVED
Last Resolved: 9 months ago
status-firefox54: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.