Closed
Bug 1349650
Opened 9 years ago
Closed 9 years ago
[css-grid] Assertion failure: mIter.isSome() || mArray->Length() == aGridItemCount (grid item count mismatch)
Categories
(Core :: Layout, defect, P2)
Tracking
()
RESOLVED
FIXED
mozilla55
People
(Reporter: truber, Assigned: MatsPalmgren_bugz)
References
Details
(Keywords: assertion, testcase)
Attachments
(3 files)
|
188 bytes,
text/html
|
Details | |
|
1.21 KB,
patch
|
dholbert
:
review+
|
Details | Diff | Splinter Review |
|
1.05 KB,
patch
|
Details | Diff | Splinter Review |
The attached testcase asserts in mozilla-central rev e03e0c60462.
Assertion failure: mIter.isSome() || mArray->Length() == aGridItemCount (grid item count mismatch), at /home/worker/workspace/build/src/layout/generic/nsGridContainerFrame.cpp:474
#01: nsGridContainerFrame::Reflow at layout/generic/nsGridContainerFrame.cpp:6196
#02: nsBlockReflowContext::ReflowBlock at layout/generic/nsBlockReflowContext.cpp:307
#03: nsBlockFrame::ReflowBlockFrame at layout/generic/nsBlockFrame.cpp:3470
#04: nsBlockFrame::ReflowLine at layout/generic/nsBlockFrame.cpp:2831
#05: nsBlockFrame::ReflowDirtyLines at layout/generic/nsBlockFrame.cpp:2370
#06: nsBlockFrame::Reflow at layout/generic/nsBlockFrame.cpp:1250
#07: nsContainerFrame::ReflowChild at layout/generic/nsContainerFrame.cpp:900
#08: nsCanvasFrame::Reflow at layout/generic/nsCanvasFrame.cpp:722
#09: nsContainerFrame::ReflowChild at layout/generic/nsContainerFrame.cpp:900
#10: nsHTMLScrollFrame::ReflowScrolledFrame at layout/generic/nsGfxScrollFrame.cpp:556
#11: nsHTMLScrollFrame::ReflowContents at layout/generic/nsGfxScrollFrame.cpp:686
#12: nsHTMLScrollFrame::Reflow at layout/generic/nsGfxScrollFrame.cpp:1041
#13: nsContainerFrame::ReflowChild at layout/generic/nsContainerFrame.cpp:943
#14: mozilla::ViewportFrame::Reflow at layout/generic/ViewportFrame.cpp:330
#15: mozilla::PresShell::DoReflow at layout/generic/ReflowOutput.h:282
Flags: in-testsuite?
| Assignee | ||
Updated•9 years ago
|
Assignee: nobody → mats
OS: Unspecified → All
Priority: -- → P2
Hardware: Unspecified → All
Summary: Assertion failure: mIter.isSome() || mArray->Length() == aGridItemCount (grid item count mismatch) → [css-grid] Assertion failure: mIter.isSome() || mArray->Length() == aGridItemCount (grid item count mismatch)
| Assignee | ||
Comment 1•9 years ago
|
||
I can't reproduce the bug in a Linux64 debug build from the exact same rev
as yours (which is currently m-c tip), using a fresh profile.
| Assignee | ||
Comment 2•9 years ago
|
||
Daniel, can you reproduce this assertion?
Flags: needinfo?(dholbert)
| Comment hidden (obsolete) |
Comment 4•9 years ago
|
||
Sorry, my clownshoes are showing -- I forgot that the build I tested in had "--disable-debug" in its mozconfig, so of course assertions were disabled.
I can reproduce this in a Linux64 debug build that I just downloaded from treeherder -- the "target.tar.bz2" tarball here:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=01125b5142e587fb8d8bd40c8dbaf6aaef71a9f9&filter-searchStr=linux%20x64%20debug%20tc%20B&selectedJob=85835007
(Direct link: https://queue.taskcluster.net/v1/task/MuZ5TB9zRb2g0XjQ-uSi2g/runs/0/artifacts/public/build/target.tar.bz2 )
Mats, if your tested local build is definitely a debug build & you still can't reproduce, maybe try that ^^ tarball as an extra sanity check?
Flags: needinfo?(jschwartzentruber) → needinfo?(mats)
Comment 5•9 years ago
|
||
Ah, the plot thickens -- my *locally-built* enable-debug/disable-optimize build does not reproduce the issue.
The main distinction between my just-tested local build & the downloaded tarball from comment 4 is "disable-optimize" (local bulid) vs "enable-optimize" (treeherder build -- technically unspecified, but this is the default).
So maybe this depends on some subtly-different initialization / out-of-order instructions that only happen in enable-optimize builds...?
| Assignee | ||
Comment 6•9 years ago
|
||
Thanks Daniel, I indeed have disable-optimize in my .mozconfig.
I'll rebuild with enable-optimize and see if that helps.
Flags: needinfo?(mats)
| Reporter | ||
Comment 7•9 years ago
|
||
Thanks Daniel. I only try taskcluster builds usually (mozilla-central.latest.firefox.linux64-debug). I didn't realize those are optimized.
| Assignee | ||
Comment 8•9 years ago
|
||
Nope, that build didn't reproduce it either. Hmm, it might be a gcc/clang difference...
| Assignee | ||
Comment 9•9 years ago
|
||
Yep, now I can reproduce it. gcc + enable-optimize did it.
| Assignee | ||
Comment 10•9 years ago
|
||
It's just a bogus assertion.
When mArray is used it contains all grid container children, including
placeholders. aGridItemCount always excludes placeholders.
Attachment #8850517 -
Flags: review?(dholbert)
| Assignee | ||
Comment 11•9 years ago
|
||
| Assignee | ||
Comment 12•9 years ago
|
||
(BTW, I'm amazed how much faster enable-optimize makes the build, even with enable-debug.
It feels like an order of magnitude or so. It does make it less debuggable though,
with gdb frequently displaying <optimized out> when trying to print variables.
It seems worth investigating if adding -Og and/or -ggdb helps with that though...)
Comment 13•9 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #9)
> Yep, now I can reproduce it. gcc + enable-optimize did it.
Glad to hear it. I can't reproduce with *clang* + enable-optimize, FWIW. (I left that building overnight to test in the morning, & just tried it. But I guess that's just because clang & gcc perform different optimizations.
Comment 14•9 years ago
|
||
D'oh, I just now noticed the "CLANG_CRASH_BUG" exclusion-ifdef around the condition -- that definitely explains why I'm not hitting it. :) (I'm using clang 3.8.1 on this machine, which satisfies the CLANG_CRASH_BUG condition.)
Comment 15•9 years ago
|
||
Comment on attachment 8850517 [details] [diff] [review]
fix
Review of attachment 8850517 [details] [diff] [review]:
-----------------------------------------------------------------
r=me
Attachment #8850517 -
Flags: review?(dholbert) → review+
Comment 16•9 years ago
|
||
Pushed by mpalmgren@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3670c556728b
[css-grid] Fix a bogus assertion. r=dholbert
https://hg.mozilla.org/integration/mozilla-inbound/rev/18e9870067e4
[css-grid] Crashtest.
| Assignee | ||
Updated•9 years ago
|
Flags: in-testsuite? → in-testsuite+
Comment 17•9 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/3670c556728b
https://hg.mozilla.org/mozilla-central/rev/18e9870067e4
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment 18•9 years ago
|
||
I'm going to assume that this isn't worth backporting. Feel free to set things back to affected and make the requests if you feel otherwise, though.
Blocks: 1151204
status-firefox52:
--- → wontfix
status-firefox53:
--- → wontfix
status-firefox54:
--- → wontfix
status-firefox-esr52:
--- → wontfix
Version: Trunk → 52 Branch
Comment 19•9 years ago
|
||
I agree. It's a debug-only change, so there's no user benefit that we'd gain from uplifting this.
Comment 20•9 years ago
|
||
...though actually, this is in a piece of code that I want to move around over in Bug 812687 (and I'll want to uplift the patches over there).
So it would make for an easier/cleaner uplift over there, if we uplifted this bug's patches over here.
I think we don't need to bother with uplift approval over here, though -- this bug only changes the inside of a MOZ_ASSERT expression, so it's debug-only and hence NPOTB.
Comment 21•9 years ago
|
||
Uplifted to aurora:
https://hg.mozilla.org/releases/mozilla-aurora/rev/08002a9d9e3ae337bdd23bf01432ba64251b880e
https://hg.mozilla.org/releases/mozilla-aurora/rev/f09f78db26a594b76139cee19a2487f9509d92ee
...and beta:
https://hg.mozilla.org/releases/mozilla-beta/rev/27126f140a2cf381f070afe905cf03659be8cd98
https://hg.mozilla.org/releases/mozilla-beta/rev/5ec9b3104a4cc38b1d28e6f49f0c0dc61642314e
...per comment 20. (I'd like it to as easy as possible for bug 812687 to be uplifted, and this bug's NPOTB changes are a requirement for that).
Updated•9 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•