Open Bug 416639 Opened 17 years ago Updated 3 years ago

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

Categories

(Core :: Layout: Tables, defect)

x86
macOS
defect

Tracking

()

Tracking Status
firefox-esr52 --- wontfix
firefox56 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- ?

People

(Reporter: jruderman, Unassigned)

References

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file 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.
This bug still exists even now that bug 413091 is fixed.
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.
Attached file 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
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.
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
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: