"ASSERTION: Table width is less than the sum of its columns' min widths" with large cellspacing, position:absolute

NEW
Unassigned

Status

()

11 years ago
11 days ago

People

(Reporter: jruderman, Unassigned)

Tracking

(Blocks: 2 bugs, {assertion, testcase})

Trunk
x86
Mac OS X
assertion, testcase
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr52 wontfix, firefox56 wontfix, firefox57 wontfix, firefox58 wontfix, firefox59 ?)

Details

Attachments

(2 attachments)

126 bytes, application/xhtml+xml
Details
141 bytes, text/html
Details
(Reporter)

Description

11 years ago
Created attachment 302387 [details]
testcase

###!!! ASSERTION: Table width is less than the sum of its columns' min widths: '!(aWidthType == BTLS_FINAL_WIDTH && aWidth < guess_min)', file /Users/jruderman/trunk/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 764

###!!! ASSERTION: didn't subtract all that we added: '(space == 0 || space == nscoord_MAX) && ((l2t == FLEX_PCT_LARGE) ? (-0.001f < basis.f && basis.f < 0.001f) : (basis.c == 0 || basis.c == nscoord_MAX))', file /Users/jruderman/trunk/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 991

###!!! ASSERTION: Can't solve for both left and right: 'NS_AUTOOFFSET != kidReflowState.mComputedOffsets.right', file /Users/jruderman/trunk/mozilla/layout/generic/nsAbsoluteContainingBlock.cpp, line 449

The first two assertions also appear in bug 413091, but the third one doesn't.  The testcases don't seem similar.
(Reporter)

Comment 1

10 years ago
This bug still exists even now that bug 413091 is fixed.

Comment 2

10 years ago
Bug 413091 is about small negative numbers under a real case scenario, this bug is about very large cellspacing driving basic table layout beyond ns_unconstrained_size. Encapsulating the corresponding calls  just moves the assert from one place to another place. The only sensible solution would be floating coordinates.
(Reporter)

Comment 3

4 years ago
Created attachment 8633226 [details]
testcase 2

###!!! ASSERTION: Table inline-size is less than the sum of its columns' min inline-sizes: '!(aISizeType == BTLS_FINAL_ISIZE && aISize < guess_min)', file layout/tables/BasicTableLayoutStrategy.cpp, line 827

Comment 4

2 years ago
I have seen this error pop up suddenly in a late submission of C-C TB tryserver test job for Windows.
https://treeherder.mozilla.org/#/jobs?repo=try-comm-central&revision=42b36ccdf93c84d56bbf21b9b50c80acf34aa12b

See the Windows 7 Debug Test:

++DOMWINDOW == 16 (145CF400) [pid = 912] [serial = 16] [outer = 14476800]
10:40:49     INFO -  ++DOMWINDOW == 17 (13E04000) [pid = 912] [serial = 17] [outer = 14473C00]
10:40:59     INFO -  Warning: Warning:  Using guessed timezone
10:40:59     INFO -    America/Los_Angeles (UTC-0800/-0700).
10:40:59     INFO -  This ZoneInfo timezone seems to match the operating system timezone this year.
10:40:59     INFO -  This ZoneInfo timezone was chosen based on the operating system timezone
10:40:59     INFO -  identifier "Pacific Standard Time".
10:41:00     INFO -  [912] WARNING: file c:/builds/moz2_slave/tb-try-c-cen-w32-d-00000000000/build/mozilla/ipc/chromium/src/base/message_loop.cc, line 280
10:41:00     INFO -  [912] ###!!! ASSERTION: Table inline-size is less than the sum of its columns' min inline-sizes: '!(aISizeType == BTLS_FINAL_ISIZE && aISize < guess_min)', file c:/builds/moz2_slave/tb-try-c-cen-w32-d-00000000000/build/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 811
10:41:00     INFO -  [912] ###!!! ASSERTION: didn't subtract all that we added: '(space == 0 || space == nscoord_MAX) && ((l2t == FLEX_PCT_LARGE) ? (-0.001f < basis.f && basis.f < 0.001f) : (basis.c == 0 || basis.c == nscoord_MAX))', file c:/builds/moz2_slave/tb-try-c-cen-w32-d-00000000000/build/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 1058
10:41:00     INFO -  [912] ###!!! ASSERTION: Table inline-size is less than the sum of its columns' min inline-sizes: '!(aISizeType == BTLS_FINAL_ISIZE && aISize < guess_min)', file c:/builds/moz2_slave/tb-try-c-cen-w32-d-00000000000/build/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 811
10:41:00     INFO -  [912] ###!!! ASSERTION: didn't subtract all that we added: '(space == 0 || space == nscoord_MAX) && ((l2t == FLEX_PCT_LARGE) ? (-0.001f < basis.f && basis.f < 0.001f) : (basis.c == 0 || basis.c == nscoord_MAX))', file c:/builds/moz2_slave/tb-try-c-cen-w32-d-00000000000/build/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 1058
10:41:00     INFO -  ++DOMWINDOW == 18 (182B8C00) [pid = 912] [serial = 18] [outer = 10127C00]
10:41:00     INFO -  ++DOMWINDOW == 19 (182BA800) [pid = 912] [serial = 19] [outer = 10128400]
10:41:00     INFO -  ++DOMWINDOW == 20 (182BBC00) [pid = 912] [serial = 20] [outer = 10128C00]

Since this appears only in Windows DEBUG build,
and linux64 debug and OSX debug build don't show it, I suspect it is a C compiler issue on Windows. Maybe it is optimizing the floating operation in a manner that the basis.f under Windows 7 debug build is calculated slightly differently from the value(s) on debug build on other platforms.

Comment 5

2 years ago
I have seen this in other people's windows 7 debug test jobs. So it is NOT due to my patches :-)
E.g.: https://treeherder.mozilla.org/#/jobs?repo=comm-central&revision=ca379f40ef826555e7da4988f56205a117f30542
Testcase 1 still hits:
ASSERTION: Can't solve for both start and end: 'NS_AUTOOFFSET != aOffsets->IEnd(outerWM)', file z:/build/build/src/layout/generic/nsAbsoluteContainingBlock.cpp, line 572

Testcase 2 still hits:
ASSERTION: Table inline-size is less than the sum of its columns' min inline-sizes: '!(aISizeType == BTLS_FINAL_ISIZE && aISize < guess_min)', file z:/build/build/src/layout/tables/BasicTableLayoutStrategy.cpp, line 811
ASSERTION: didn't subtract all that we added: '(space == 0 || space == nscoord_MAX) && ((l2t == FLEX_PCT_LARGE) ? (-0.001f < basis.f && basis.f < 0.001f) : (basis.c == 0 || basis.c == nscoord_MAX))', file z:/build/build/src/layout/tables/BasicTableLayoutStrategy.cpp, line 1058
Has Regression Range: --- → no
status-firefox56: --- → wontfix
status-firefox57: --- → wontfix
status-firefox58: --- → fix-optional
status-firefox-esr52: --- → wontfix
You need to log in before you can comment on or make changes to this bug.