Closed Bug 145171 Opened 22 years ago Closed 22 years ago

Layout crash on loading http://gdargaud.net/Photo/index.html#Sygma [@IsPercentageAwareChild]

Categories

(Core :: Layout, defect, P2)

x86
Linux
defect

Tracking

()

RESOLVED WORKSFORME
Future

People

(Reporter: yaneti, Assigned: waterson)

References

()

Details

(Keywords: crash, testcase)

Crash Data

Attachments

(3 files, 1 obsolete file)

from galeon bug http://bugzilla.gnome.org/show_bug.cgi?id=82018

Go to http://gdargaud.net/Photo/index.html#Sygma
Mozilla 1.0rc2  (20020513) crashes with:


#0  0x40e3fabf in IsPercentageAwareChild ()
   from /usr/lib/mozilla/components/libgklayout.so
#1  0x40e42ccf in nsBlockFrame::ReflowInlineFrame ()
   from /usr/lib/mozilla/components/libgklayout.so
#2  0x40e42bff in nsBlockFrame::DoReflowInlineFrames ()
   from /usr/lib/mozilla/components/libgklayout.so
#3  0x40e42997 in nsBlockFrame::DoReflowInlineFramesAuto ()
   from /usr/lib/mozilla/components/libgklayout.so
#4  0x40e4283c in nsBlockFrame::ReflowInlineFrames ()
   from /usr/lib/mozilla/components/libgklayout.so
#5  0x40e413c8 in nsBlockFrame::ReflowLine ()
   from /usr/lib/mozilla/components/libgklayout.so
#6  0x40e40b96 in nsBlockFrame::ReflowDirtyLines ()
   from /usr/lib/mozilla/components/libgklayout.so
#7  0x40e3f640 in nsBlockFrame::Reflow ()
   from /usr/lib/mozilla/components/libgklayout.so
#8  0x40e4c41b in nsContainerFrame::ReflowChild ()
   from /usr/lib/mozilla/components/libgklayout.so
#9  0x40eaa351 in nsFieldSetFrame::Reflow ()
   from /usr/lib/mozilla/components/libgklayout.so
#10 0x40e46a1a in nsBlockReflowContext::DoReflowBlock ()
   from /usr/lib/mozilla/components/libgklayout.so
#11 0x40e46576 in nsBlockReflowContext::ReflowBlock ()
   from /usr/lib/mozilla/components/libgklayout.so
#12 0x40e421a1 in nsBlockFrame::ReflowBlockFrame ()
   from /usr/lib/mozilla/components/libgklayout.so
#13 0x40e4101b in nsBlockFrame::ReflowLine ()
   from /usr/lib/mozilla/components/libgklayout.so
#14 0x40e40b96 in nsBlockFrame::ReflowDirtyLines ()
   from /usr/lib/mozilla/components/libgklayout.so
#15 0x40e3f640 in nsBlockFrame::Reflow ()
   from /usr/lib/mozilla/components/libgklayout.so
#16 0x40e4c41b in nsContainerFrame::ReflowChild ()
.......
Changing QA Contact
QA Contact: petersen → amar
confirmed with Linux CVS from 20020517

debug build complains as follows:

###!!! ASSERTION: bad geometric parent: 'mFrames.ContainsFrame(aChild)', file
nsContainerFrame.cpp, line 922
Break: at file nsContainerFrame.cpp, line 922
###!!! ASSERTION: failed to remove frame: 'result', file nsContainerFrame.cpp,
line 960
Break: at file nsContainerFrame.cpp, line 960
###!!! ASSERTION: No style context found!: 'mStyleContext', file
../../../../dist/include/layout/nsIFrame.h, line 564
Break: at file ../../../../dist/include/layout/nsIFrame.h, line 564

severity critical, crash keyword.
Severity: normal → critical
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: crash
Attached file reduced testcase
The crash started occurring due to the innocuous checkin for bug 139989.

Note that the image extends out of the fieldset.  That started occurring between
2002012911 and 2002013108, due to bug 120958.  Unfortunately, backing that patch
out of current CVS doesn't fix the crash.
I'm unable to reproduce this with a current trunk build. Is this still a problem?
Okay, I take that back. Just reproduced. Looking...
Assignee: attinasi → waterson
Priority: -- → P2
Target Milestone: --- → mozilla1.0.1
Something funky going on here around the time we get that first assertion. The
child (Inline(a)(3)@0x87242f4) thinks its parent is the fieldset frame, not the
fieldset's content frame:

FieldSet(fieldset)(1)@0x8723838 [parent=0x871e858] next=0x8724414
{38,0,1543,4721} [state=00800005] [content=0x871fed0] [sc=0x8723708]<
  Area(fieldset)(1)@0x872388c [parent=0x8723838] {0,0,1159,4275}
[state=0090000d] sc=0x8723908(i=6,b=0)<
    line 0x87243e8: count=2 state=inline,clean,prevmarginclean,not
impacted,wrapped,nobr[0x2020] mew=1159 {0,0,874,266} ca={0,0,6836,4275} <
      Placeholder(img)(1)@0x8724138 [parent=0x8723838] {0,209,0,0}
[state=00000004] outOfFlowFrame=Frame(img)(1)@0x8723ff4
      Text(2)@0x872419c [parent=0x8723838][0,9,F]  next=0x873b200
next-in-flow=0x873b200 {0,0,874,266} [state=20000024] sc=0x8724168<
        "over the "
      >
    > floaters <
      placeholder@0x8724138 Frame(img)(1) cl region={1136,0,5700,4275}
combinedArea={0,0,5700,4275}
    >
    line 0x873b248: count=1
state=inline,clean,prevmarginclean,impacted,wrapped,nobr[0x1028] {0,266,665,266} <
      Text(2)@0x873b200 [parent=0x872388c][9,7,F]  next=0x873b274
prev-in-flow=0x872419c next-in-flow=0x873b274 {0,266,665,266} [state=20000024]
sc=0x8724168<
        "years, "
      >
    >
    line 0x873b2bc: count=1
state=inline,clean,prevmarginclean,impacted,wrapped,nobr[0x1028] {0,532,684,266} <
      Text(2)@0x873b274 [parent=0x872388c][16,7,F]  next=0x873b2e8
prev-in-flow=0x873b200 next-in-flow=0x873b2e8 {0,532,684,266} [state=20000024]
sc=0x8724168<
        "mainly "
      >
    >
    line 0x873b330: count=1
state=inline,clean,prevmarginclean,impacted,wrapped,nobr[0x1028] {0,798,912,266} <
      Text(2)@0x873b2e8 [parent=0x872388c][23,10,F]  next=0x873b35c
prev-in-flow=0x873b274 next-in-flow=0x873b35c {0,798,912,266} [state=20000024]
sc=0x8724168<
        "featuring "
      >
    >
    line 0x873b3a4: count=2 state=inline,dirty,prevmarginclean,not impacted,not
wrapped,nobr[0x2001] {0,1064,1159,266} <
      Text(2)@0x873b35c [parent=0x872388c][33,33,T]  next=0x87242f4
prev-in-flow=0x873b2e8 {0,1064,3496,266} [state=40000024] sc=0x8724168<
        "Antarctica, mountain climbing or "
      >
      Inline(a)(3)@0x87242f4 [parent=0x8723838] next=0x873b52c
next-in-flow=0x873b52c {0,1862,1444,266} [state=00000004] [content=0x87200d8]
[sc=0x8724264]<
        Text(0)@0x8724360 [parent=0x87242f4][0,14,T]  {0,0,1444,266}
[state=40000024] sc=0x872432c<
          "other pictures"
        >
      >
    >
    line 0x873b564: count=2 state=inline,dirty,prevmargindirty,impacted,not
wrapped,nobr[0x200b] {0,2128,893,266} <
      Inline(a)(3)@0x873b52c [parent=0x8723838] next=0x87243a4
prev-in-flow=0x87242f4 {0,2128,836,266} [state=00000004] [content=0x87200d8]
[sc=0x8724264]<>
      Text(4)@0x87243a4 [parent=0x8723838][0,12,T]  {836,2128,57,266}
[state=74000024] sc=0x8724168<
        ".\n          "
      >
    >
    Floater-list<
      Frame(img)(1)@0x8723ff4 [parent=0x8723838] {1136,0,5700,4275}
[state=00000124] [content=0x8720d08] [src=http://gdargaud.net/300/AdelieBlueSky.jpg]
    >
  >
>
Status: NEW → ASSIGNED
Attached patch fix (obsolete) — Splinter Review
The fieldset frame overrides the frame manipulation code to append, insert, and
replace frames into its child `content frame'. The problem is that it doesn't
fix the new frames' parent pointers before doing so. This patch does the fixup,
and adds an assertion in the block code to ensure that we can catch this sort
of problem earlier.
rods, could you r=? dbaron, you too? alex: do you know of any other fieldset
bugs like this? (I thought that I'd seen a few...)
Comment on attachment 84956 [details] [diff] [review]
fix

r=dbaron.  Presumably there aren't any issues with views, are there? 
(mContentFrame presumably doesn't have a view.	Should that be an
NS_ASSERTION?)
Attachment #84956 - Flags: review+
cc'ing kin for sr=?
Oops, my assertion trips over the {ib} code.

dbaron, although I don't _think_ that views would be an issue in this specific
case, it might be nice to consolidate this logic. For example, the {ib} code
does a bunch of junk like this.

Let me run with this patch for a few more days to see what other assertions I
hit.
Attachment #84956 - Attachment is obsolete: true
nop, i don't know any (important) fieldset bugs right now although i recall
there was something sometime ago, hmmm. (sorry for the late response)

maybe attinasi's in-box has some (there must be some :-)
Target Milestone: mozilla1.0.1 → mozilla1.1beta
Target Milestone: mozilla1.1beta → Future
*** Bug 175724 has been marked as a duplicate of this bug. ***
My post (Bug 175724) has been marked as a duplicate of this one, so I post here
instead. I have made a very small HTML file that makes my browser crash:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
	<STYLE>
	<!--
		H2:first-letter { float: left; font-size: 0% }
	-->
	</STYLE>
</HEAD>
<BODY>
<H2>Crash</H2>
</BODY>
</HTML>


If font-size: 0% is changed to ex. 10% the browser doesent crach.
Unfortunately OpenOffice.org generates HTML with this 
		H2:first-letter { float: left; font-size: 0% }

I hope this helps.
WFM on 21/23 Linux Trunk build.

With 6/11/02 Trunk build on Linux, I crash using the testcase Jacob added in #6.
Keywords: testcase
worksforme with URL and testcases from comment 3 and comment 16 using linux
trunk 20030106
Marking so.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → WORKSFORME
Crash Signature: [@IsPercentageAwareChild]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: