Closed Bug 1770120 Opened 2 years ago Closed 1 year ago

Intermittent TV Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at /builds/worker/checkouts/gecko/layout/base/nsCSSFrameConstructor.cpp:

Categories

(DevTools :: Style Editor, defect, P5)

defect

Tracking

(firefox-esr91 unaffected, firefox100 unaffected, firefox101 unaffected, firefox102 wontfix, firefox103 wontfix)

RESOLVED INCOMPLETE
Tracking Status
firefox-esr91 --- unaffected
firefox100 --- unaffected
firefox101 --- unaffected
firefox102 --- wontfix
firefox103 --- wontfix

People

(Reporter: intermittent-bug-filer, Unassigned)

References

(Regression)

Details

(Keywords: assertion, intermittent-failure, regression)

Filed by: ccozmuta [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=378580804&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/N_4CNilsSaytiyCp2rZfpA/runs/0/artifacts/public/logs/live_backing.log
Reftest URL: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/N_4CNilsSaytiyCp2rZfpA/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1


[task 2022-05-19T05:58:40.762Z] 05:58:40     INFO - TEST-START | devtools/client/styleeditor/test/browser_toolbox_styleeditor.js
[task 2022-05-19T05:58:40.784Z] 05:58:40     INFO - GECKO(5836) | [Child 8484: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 1e13d026000 == 2 [pid = 8484] [id = 2]
[task 2022-05-19T05:58:40.787Z] 05:58:40     INFO - GECKO(5836) | [Child 8484: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 3 (1e13816b260) [pid = 8484] [serial = 7] [outer = 0]
[task 2022-05-19T05:58:40.788Z] 05:58:40     INFO - GECKO(5836) | [Child 8484: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 4 (1e13d027c00) [pid = 8484] [serial = 8] [outer = 1e13816b260]
[task 2022-05-19T05:58:40.817Z] 05:58:40     INFO - GECKO(5836) | [Child 8484: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 5 (1e13ecd5800) [pid = 8484] [serial = 9] [outer = 1e13816b260]
[task 2022-05-19T05:58:40.843Z] 05:58:40     INFO - GECKO(5836) | [Parent 4104, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/OriginAttributes.cpp:114
[task 2022-05-19T05:58:40.854Z] 05:58:40     INFO - GECKO(5836) | [Parent 4104, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/OriginAttributes.cpp:114
[task 2022-05-19T05:58:40.855Z] 05:58:40     INFO - GECKO(5836) | [Parent 4104, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/OriginAttributes.cpp:114
[task 2022-05-19T05:58:40.856Z] 05:58:40     INFO - GECKO(5836) | [Parent 4104, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/caps/OriginAttributes.cpp:114
[task 2022-05-19T05:58:40.908Z] 05:58:40     INFO - GECKO(5836) | DevTools Server for Browser Toolbox listening on port: 49965
<...>
[task 2022-05-19T05:58:50.603Z] 05:58:50     INFO - GECKO(5836) | Expected style:
[task 2022-05-19T05:58:50.604Z] 05:58:50     INFO - GECKO(5836) |   Properties:
[task 2022-05-19T05:58:50.604Z] 05:58:50     INFO - GECKO(5836) |     transition-duration: 0.5s
[task 2022-05-19T05:58:50.605Z] 05:58:50     INFO - GECKO(5836) |     transition-timing-function: ease-out
[task 2022-05-19T05:58:50.605Z] 05:58:50     INFO - GECKO(5836) |   Rules:
[task 2022-05-19T05:58:50.606Z] 05:58:50     INFO - GECKO(5836) |     :root:-moz-styleeditor-transitioning, :root:-moz-styleeditor-transitioning * { transition: all 500ms ease-out 0ms !important; }
[task 2022-05-19T05:58:50.606Z] 05:58:50     INFO - GECKO(5836) |     scrollbarbutton[type="decrement"] { appearance: auto; -moz-default-appearance: scrollbarbutton-left; }
[task 2022-05-19T05:58:50.606Z] 05:58:50     INFO - GECKO(5836) |     scrollbar, scrollbarbutton, scrollcorner, slider, thumb { user-select: none; }
[task 2022-05-19T05:58:50.607Z] 05:58:50     INFO - GECKO(5836) |     :is(scrollbarbutton, slider, thumb):where(:-moz-native-anonymous) { direction: inherit; cursor: inherit; }
[task 2022-05-19T05:58:50.613Z] 05:58:50     INFO - GECKO(5836) |     :is(scrollcorner, resizer, scrollbar, scrollbarbutton, slider):where(:-moz-native-anonymous) { border-block: initial; border-inline: initial; border-start-start-radius: initial; border-start-end-radius: initial; border-end-start-radius: initial; border-end-end-radius: initial; overflow-inline: initial; overflow-block: initial; overscroll-behavior-inline: initial; overscroll-behavior-block: initial; margin-block: initial; margin-inline: initial; scroll-margin-block: initial; scroll-margin-inline: initial; padding-block: initial; padding-inline: initial; scroll-padding-block: initial; scroll-padding-inline: initial; inset-block: initial; inset-inline: initial; block-size: initial; min-block-size: initial; max-block-size: initial; inline-size: initial; min-inline-size: initial; max-inline-size: initial; background: initial; background-blend-mode: initial; border: initial; border-radius: initial; box-decoration-break: initial; -moz-float-edge: initial; position: initial; float: initial; clear: initial; overflow: initial; overflow-anchor: initial; transform: initial; rotate: initial; scale: initial; translate: initial; offset: initial; scroll-behavior: initial; scroll-snap-align: initial; scroll-snap-type: initial; overscroll-behavior: initial; isolation: initial; break-after: initial; break-before: initial; break-inside: initial; resize: initial; perspective: initial; perspective-origin: initial; backface-visibility: initial; transform-box: initial; transform-style: initial; transform-origin: initial; contain: initial; appearance: initial; -moz-orient: initial; will-change: initial; shape-image-threshold: initial; shape-margin: initial; shape-outside: initial; touch-action: initial; -webkit-line-clamp: initial; scrollbar-gutter: initial; columns: initial; column-fill: initial; column-rule: initial; column-span: initial; content: initial; counter-increment: initial; counter-reset: initial; counter-set: initial; opacity: initial; box-shadow: initial; clip: initial; filter: initial; mix-blend-mode: initial; font-synthesis: initial; math-style: initial; writing-mode: initial; text-orientation: initial; print-color-adjust: initial; image-rendering: initial; image-orientation: initial; dominant-baseline: initial; text-anchor: initial; color-interpolation: initial; color-interpolation-filters: initial; fill: initial; fill-opacity: initial; fill-rule: initial; shape-rendering: initial; stroke: initial; stroke-width: initial; stroke-linecap: initial; stroke-linejoin: initial; stroke-miterlimit: initial; stroke-opacity: initial; stroke-dasharray: initial; stroke-dashoffset: initial; clip-rule: initial; marker: initial; paint-order: initial; border-collapse: initial; empty-cells: initial; caption-side: initial; border-spacing: initial; color: initial; text-transform: initial; hyphens: initial; -moz-text-size-adjust: initial; text-indent: initial; overflow-wrap: initial; word-break: initial; text-justify: initial; text-align-last: initial; text-align: initial; letter-spacing: initial; word-spacing: initial; white-space: initial; text-shadow: initial; text-emphasis: initial; text-emphasis-position: initial; tab-size: initial; line-break: initial; -webkit-text-fill-color: initial; -webkit-text-stroke: initial; ruby-align: initial; ruby-position: initial; text-combine-upright: initial; text-rendering: initial; text-underline-offset: initial; text-underline-position: initial; text-decoration-skip-ink: initial; hyphenate-character: initial; cursor: initial; -moz-user-input: initial; -moz-user-modify: initial; caret-color: initial; accent-color: initial; color-scheme: initial; scrollbar-color: initial; list-style: initial; quotes: initial; -moz-image-region: initial; margin: initial; scroll-margin: initial; outline: initial; outline-offset: initial; size: initial; padding: initial; scroll-padding: initial; inset: initial; z-index: initial; flex-flow: initial; place-content: initial; justify-tracks: initial; align-tracks: initial; align-items: initial; flex: initial; place-self: initial; order: initial; width: initial; min-width: initial; max-width: initial; height: initial; min-height: initial; max-height: initial; object-fit: initial; object-position: initial; grid-area: initial; grid: initial; masonry-auto-flow: initial; gap: initial; aspect-ratio: initial; vector-effect: initial; stop-color: initial; stop-opacity: initial; flood-color: initial; flood-opacity: initial; lighting-color: initial; mask-type: initial; clip-path: initial; mask: initial; x: initial; y: initial; cx: initial; cy: initial; rx: initial; ry: initial; r: initial; d: initial; table-layout: initial; text-overflow: initial; text-decoration: initial; initial-letter: initial; ime-mode: initial; scrollbar-width: initial; -moz-window-dragging: initial; -moz-force-broken-image-icon: initial; transition: initial; animation: initial; -moz-box-align: initial; -moz-box-direction: initial; -moz-box-flex: initial; -moz-box-orient: initial; -moz-box-pack: initial; -moz-box-ordinal-group: initial; visibility: inherit; pointer-events: inherit; -moz-context-properties: initial; -moz-control-character-visibility: initial; -moz-font-smoothing-background-color: initial; -moz-min-font-size-ratio: initial; math-depth: initial; -moz-inert: initial; direction: ltr; font: 16px sans-serif; justify-items: start; vertical-align: initial !important; -moz-user-focus: ignore; user-select: none; display: -moz-box; box-sizing: border-box; }
[task 2022-05-19T05:58:50.613Z] 05:58:50     INFO - GECKO(5836) |     * { -moz-user-focus: ignore; user-select: none; display: -moz-box; box-sizing: border-box; }
[task 2022-05-19T05:58:50.614Z] 05:58:50     INFO - GECKO(5836) | Assertion failure: cachedStyles[i]->EqualForCachedAnonymousContentStyle(*cs) (cached anonymous content styles should be identical to those we would compute normally), at /builds/worker/checkouts/gecko/layout/base/nsCSSFrameConstructor.cpp:4085
[task 2022-05-19T05:58:50.658Z] 05:58:50     INFO -  Initializing stack-fixing for the first stack frame, this may take a while...
[task 2022-05-19T05:59:00.706Z] 05:59:00     INFO - GECKO(5836) | #01: nsCSSFrameConstructor::GetAnonymousContent(nsIContent*, nsIFrame*, nsTArray<nsIAnonymousContentCreator::ContentInfo>&) [layout/base/nsCSSFrameConstructor.cpp:4082]
[task 2022-05-19T05:59:00.712Z] 05:59:00     INFO - GECKO(5836) | #02: nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState&, nsIContent*, mozilla::ComputedStyle*, nsContainerFrame*, const bool, nsFrameList&, const bool, nsIFrame*) [layout/base/nsCSSFrameConstructor.cpp:9705]
[task 2022-05-19T05:59:00.713Z] 05:59:00     INFO - GECKO(5836) | #03: nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem&, nsFrameConstructorState&, nsContainerFrame*, nsFrameList&) [layout/base/nsCSSFrameConstructor.cpp:3696]
[task 2022-05-19T05:59:00.714Z] 05:59:00     INFO - GECKO(5836) | #04: nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState&, nsCSSFrameConstructor::FrameConstructionItemList::Iterator&, nsContainerFrame*, nsFrameList&) [layout/base/nsCSSFrameConstructor.cpp:5753]
[task 2022-05-19T05:59:00.714Z] 05:59:00     INFO - GECKO(5836) | #05: nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState&, nsCSSFrameConstructor::FrameConstructionItemList&, nsContainerFrame*, bool, nsFrameList&) [layout/base/nsCSSFrameConstructor.cpp:9605]
[task 2022-05-19T05:59:00.715Z] 05:59:00     INFO - GECKO(5836) | #06: nsCSSFrameConstructor::BeginBuildingScrollFrame(nsFrameConstructorState&, nsIContent*, mozilla::ComputedStyle*, nsContainerFrame*, mozilla::PseudoStyleType, bool, nsContainerFrame*&) [layout/base/nsCSSFrameConstructor.cpp:4280]
[task 2022-05-19T05:59:00.716Z] 05:59:00     INFO - GECKO(5836) | #07: nsCSSFrameConstructor::SetUpDocElementContainingBlock(nsIContent*) [layout/base/nsCSSFrameConstructor.cpp:2795]
[task 2022-05-19T05:59:00.716Z] 05:59:00     INFO - GECKO(5836) | #08: nsCSSFrameConstructor::ConstructDocElementFrame(mozilla::dom::Element*) [layout/base/nsCSSFrameConstructor.cpp:2368]
[task 2022-05-19T05:59:00.717Z] 05:59:00     INFO - GECKO(5836) | #09: nsCSSFrameConstructor::ContentRangeInserted(nsIContent*, nsIContent*, nsCSSFrameConstructor::InsertionKind) [layout/base/nsCSSFrameConstructor.cpp:7052]
[task 2022-05-19T05:59:00.717Z] 05:59:00     INFO - GECKO(5836) | #10: mozilla::RestyleManager::ProcessRestyledFrames(nsStyleChangeList&) [layout/base/RestyleManager.cpp:1494]
[task 2022-05-19T05:59:00.718Z] 05:59:00     INFO - GECKO(5836) | #11: mozilla::RestyleManager::DoProcessPendingRestyles(mozilla::ServoTraversalFlags) [layout/base/RestyleManager.cpp:3118]
[task 2022-05-19T05:59:00.718Z] 05:59:00     INFO - GECKO(5836) | #12: mozilla::RestyleManager::ProcessPendingRestyles() [layout/base/RestyleManager.cpp:3198]
[task 2022-05-19T05:59:00.719Z] 05:59:00     INFO - GECKO(5836) | #13: mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) [layout/base/PresShell.cpp:4320]
<...>
[task 2022-05-19T06:06:10.939Z] 06:06:10     INFO - Entering test bound 
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO - Adding a new tab with URL: 'data:text/html,<!DOCTYPE html>
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO -   <head>
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO -     <meta charset=utf8>
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO -     <link rel="stylesheet" type="text/css" href="http://example.com/browser/devtools/client/styleeditor/test/simple.css">
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO -   <head>
[task 2022-05-19T06:06:10.940Z] 06:06:10     INFO -   <body>Test browser toolbox</body>'
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO - URL 'data:text/html,<!DOCTYPE html>
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO -   <head>
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO -     <meta charset=utf8>
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO -     <link rel="stylesheet" type="text/css" href="http://example.com/browser/devtools/client/styleeditor/test/simple.css">
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO -   <head>
[task 2022-05-19T06:06:10.941Z] 06:06:10     INFO -   <body>Test browser toolbox</body>' loading complete
[task 2022-05-19T06:06:10.942Z] 06:06:10     INFO - TEST-PASS | devtools/client/styleeditor/test/browser_toolbox_styleeditor.js | Browser toolbox started - 
[task 2022-05-19T06:06:10.942Z] 06:06:10     INFO - TEST-PASS | devtools/client/styleeditor/test/browser_toolbox_styleeditor.js | Has session state - 
[task 2022-05-19T06:06:10.943Z] 06:06:10     INFO - Buffered messages logged at 05:58:45
[task 2022-05-19T06:06:10.943Z] 06:06:10     INFO - TEST-PASS | devtools/client/styleeditor/test/browser_toolbox_styleeditor.js | Got transport - 
[task 2022-05-19T06:06:10.943Z] 06:06:10     INFO - TEST-PASS | devtools/client/styleeditor/test/browser_toolbox_styleeditor.js | Connected - 
[task 2022-05-19T06:06:10.944Z] 06:06:10     INFO - Buffered messages logged at 05:58:46

:nchevobbe, since you are the author of the regressor, bug 1764347, could you take a look?
For more information, please visit auto_nag documentation.

Flags: needinfo?(nchevobbe)
Has Regression Range: --- → yes

Set release status flags based on info from the regressing bug 1764347

So we're hitting https://searchfox.org/mozilla-central/rev/9f95c41a962c9228f569f8a6b2c30edbb50b65ae/layout/base/nsCSSFrameConstructor.cpp#4080-4085 , but I really don't know why

Daniel, could you shed some light on this?

The test is starting a Browser Toolbox and selecting the Style Editor, so we are fetching the content of all stylesheets used in Firefox.

Flags: needinfo?(nchevobbe) → needinfo?(dholbert)

Historical nite: this assert was added in bug 1554571 (--> adding dependency), and we've had other scenarios where it failed in the past (bug 1562359, bug 1663740).

I'll tentatively punt the needinfo to emilio, since he's been involved with previous work related to this assertion.

Depends on: 1554571
Flags: needinfo?(dholbert) → needinfo?(emilio)

The error message says the rules that cause the difference. In particular the style editor adds an !important transition that overrides the scrollbar styles.

Easiest fix would be to change this line to avoid applying the transition to native anonymous nodes by using :not(:-moz-native-anonymous) or so.

Even better fix would be to not use a UA sheet + internal pseudo-class for this...

Flags: needinfo?(emilio)
Component: Layout → Style Editor
Product: Core → DevTools

Thanks for the explanation
I might move forward with Bug 1707611, so this shouldn't be an issue anymore

Set release status flags based on info from the regressing bug 1764347

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---

That is a different one, the test crashing is browser_pdfjs_minimum_font_size.js

Flags: needinfo?(cdenizet)

I don't see any differences between Actual and Expected but maybe computedStyle doesn't get the real font size (it's the case at least for the js version getComputedStyle).
The failure could be because of:
https://searchfox.org/mozilla-central/rev/373d05f4eabdb90a6480d5d36d983b8bff36c9d8/toolkit/components/pdfjs/test/browser_pdfjs_minimum_font_size.js#32
and the fact that the scrollbar has a font property:
https://searchfox.org/mozilla-central/rev/373d05f4eabdb90a6480d5d36d983b8bff36c9d8/layout/style/res/scrollbars.css#37

I'm not sure to understand everything here, but I'd be inclined to think it's normal to have a mismatch between the actual value and the cached one when the pref just changed.
Anyway I think this test is just highlighting a pre-existing problem.
:emilio, wdyt ?

Flags: needinfo?(cdenizet)
Status: REOPENED → RESOLVED
Closed: 2 years ago1 year ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.