Closed
Bug 6726
Opened 25 years ago
Closed 25 years ago
Purify BSR error on startup
Categories
(Core :: Layout, defect, P2)
Tracking
()
VERIFIED
FIXED
M8
People
(Reporter: jim_nance, Assigned: buster)
Details
(Whiteboard: stored in kipp's pile by rickg)
Attachments
(1 file)
(deleted),
text/plain
|
Details |
When starting up apprunner (that has been purified), I get a reproducable
BSR error in the layout code. This has been happening for at least several
weeks. I tracked down what is going on, but I dont know the code well enough
to submit a patch. Here is some debugger output from the bottom frame:
(gdb) w
#1 0x6be726c4 in nsBlockReflowContext::ReflowBlock (this=0xefffbb20,
aFrame=0x720730, aSpace=@0xefffbb00, aApplyTopMargin=1,
aPrevBottomMargin=0, aIsAdjacentWithTop=1, aComputedOffsets=@0xefffbae8,
aFrameReflowStatus=@0xefffbafc)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockReflowContext.cpp:239
234 nsFrame::ListTag(stdout, aFrame);
235 printf(" metrics=%d,%d!\n", mMetrics.width, mMetrics.height);
236 }
237 if ((nsnull != mMetrics.maxElementSize) &&
238 ((nscoord(0xdeadbeef) == mMetrics.maxElementSize->width) ||
239 > (nscoord(0xdeadbeef) == mMetrics.maxElementSize->height))) {
240 printf("nsBlockReflowContext: ");
241 nsFrame::ListTag(stdout, aFrame);
242 printf(" didn't set max-element-size!\n");
243 mMetrics.maxElementSize->width = 0;
(gdb) p (void*) purify_report_address
$8 = (void *) 0xefffa970
(gdb) p &mMetrics.maxElementSize->width
$9 = (int *) 0xefffa970
As you can see the ->width pointer is the problem. The stack trace at this
point is:
#0 0x5df64 in purify_stop_here ()
#1 0x6be726c4 in nsBlockReflowContext::ReflowBlock (this=0xefffbb20,
aFrame=0x720730, aSpace=@0xefffbb00, aApplyTopMargin=1,
aPrevBottomMargin=0, aIsAdjacentWithTop=1, aComputedOffsets=@0xefffbae8,
aFrameReflowStatus=@0xefffbafc)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockReflowContext.cpp:239
#2 0x6be5f0d4 in nsBlockFrame::ReflowBlockFrame (this=0x716d18,
aState=@0xefffbd30, aLine=0x78ca50, aKeepReflowGoing=0xefffbca8)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockFrame.cpp:2493
#3 0x6be5c200 in nsBlockFrame::ReflowLine (this=0x716d18, aState=@0xefffbd30,
aLine=0x78ca50, aKeepReflowGoing=0xefffbca8)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockFrame.cpp:1983
#4 0x6be5b270 in nsBlockFrame::ReflowDirtyLines (this=0x716d18,
aState=@0xefffbd30)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockFrame.cpp:1793
#5 0x6be589e8 in nsBlockFrame::Reflow (this=0x716d18, aPresContext=@0x40deb8,
aMetrics=@0xefffdfc0, aReflowState=@0xefffdf20, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsBlockFrame.cpp:1199
#6 0x6be51714 in nsAreaFrame::Reflow (this=0x716d18, aPresContext=@0x40deb8,
aDesiredSize=@0xefffdfc0, aReflowState=@0xefffdf20, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsAreaFrame.cpp:265
#7 0x6be7b810 in nsContainerFrame::ReflowChild (this=0x716240,
aKidFrame=0x716d18, aPresContext=@0x40deb8, aDesiredSize=@0xefffdfc0,
aReflowState=@0xefffdf20, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsContainerFrame.cpp:392
#8 0x6be9d148 in RootFrame::Reflow (this=0x716240, aPresContext=@0x40deb8,
aDesiredSize=@0xefffe1c0, aReflowState=@0xefffe118, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsHTMLFrame.cpp:223
#9 0x6be7b810 in nsContainerFrame::ReflowChild (this=0x6fe178,
aKidFrame=0x716240, aPresContext=@0x40deb8, aDesiredSize=@0xefffe1c0,
aReflowState=@0xefffe118, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsContainerFrame.cpp:392
#10 0x6bf1d538 in ViewportFrame::Reflow (this=0x6fe178,
aPresContext=@0x40deb8, aDesiredSize=@0xefffe320,
aReflowState=@0xefffe270, aStatus=@0xefffe31c)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsViewportFrame.cpp:436
#11 0x6bee55b0 in PresShell::InitialReflow (this=0x4d6ba8, aWidth=9225,
aHeight=7200)
at
/net/ralf/group/jlnance/tmp/src/mozilla/layout/html/base/src/nsPresShell.cpp:888
#12 0x6c8a03bc in XULDocumentImpl::StartLayout (this=0x40dcf0)
at
/net/ralf/group/jlnance/tmp/src/mozilla/rdf/content/src/nsXULDocument.cpp:3785
#13 0x6c891cd0 in XULDocumentImpl::EndLoad (this=0x40dcf0)
at
/net/ralf/group/jlnance/tmp/src/mozilla/rdf/content/src/nsXULDocument.cpp:1765
#14 0x6c8e8e28 in XULContentSinkImpl::DidBuildModel (this=0x41af68,
aQualityLevel=1)
at
/net/ralf/group/jlnance/tmp/src/mozilla/rdf/datasource/src/nsXULContentSink.cpp:502
#15 0x6f7fafa8 in CWellFormedDTD::DidBuildModel (this=0x470800, anErrorCode=0,
aNotifySink=1, aParser=0x41b270, aSink=0x41af68)
at
/net/ralf/group/jlnance/tmp/src/mozilla/htmlparser/src/nsWellFormedDTD.cpp:287
#16 0x6f7e274c in nsParser::DidBuildModel (this=0x41b270, anErrorCode=0)
at /net/ralf/group/jlnance/tmp/src/mozilla/htmlparser/src/nsParser.cpp:507
#17 0x6f7e4148 in nsParser::ResumeParse (this=0x41b270, aDefaultDTD=0x0)
at /net/ralf/group/jlnance/tmp/src/mozilla/htmlparser/src/nsParser.cpp:847
#18 0x6f7e2aa4 in nsParser::EnableParser (this=0x41b270, aState=1)
at /net/ralf/group/jlnance/tmp/src/mozilla/htmlparser/src/nsParser.cpp:584
#19 0x6c8f01e4 in XULContentSinkImpl::DoneLoadingScript (aLoader=0x576e08,
aData=@0x5a4678, aRef=0x41af68, aStatus=0)
at
/net/ralf/group/jlnance/tmp/src/mozilla/rdf/datasource/src/nsXULContentSink.cpp:1500
#20 0x6f8c15e4 in nsUnicharStreamLoader::OnStopBinding (this=0x576e08,
aURL=0x54e5e8, aStatus=0, aMsg=0xefffe910)
at
/net/ralf/group/jlnance/tmp/src/mozilla/network/module/nsNetStreamLoader.cpp:156
#21 0x6f86505c in nsDocumentBindInfo::OnStopBinding (this=0x5a4708,
aURL=0x54e5e8, aStatus=0, aMsg=0xefffe910)
at /net/ralf/group/jlnance/tmp/src/mozilla/webshell/src/nsDocLoader.cpp:1523
#22 0x6f8ca6f8 in stub_complete (stream=0x57d3d0)
at
/net/ralf/group/jlnance/tmp/src/mozilla/network/module/nsStubContext.cpp:771
#23 0x6fb36994 in net_ProcessFile (cur_entry=0x5a4cf0)
at
/net/ralf/group/jlnance/tmp/src/mozilla/network/protocol/file/mkfile.c:1360
#24 0x6f938a7c in NET_ProcessNet (ready_fd=0x0, fd_type=1)
at /net/ralf/group/jlnance/tmp/src/mozilla/network/main/mkgeturl.c:3355
#25 0x6f94d00c in NET_PollSockets ()
at /net/ralf/group/jlnance/tmp/src/mozilla/network/main/mkselect.c:298
#26 0x6f8b78c4 in nsNetlibService::NetPollSocketsCallback (aTimer=0x5a30d8,
aClosure=0x173168)
at
/net/ralf/group/jlnance/tmp/src/mozilla/network/module/nsNetService.cpp:1270
#27 0x6fed10f4 in TimerImpl::FireTimeout (this=0x5a30d8)
at /net/ralf/group/jlnance/tmp/src/mozilla/base/src/gtk/nsTimer.cpp:73
#28 0x6fed1ec0 in nsTimerExpired (aCallData=0x5a30d8)
at /net/ralf/group/jlnance/tmp/src/mozilla/base/src/gtk/nsTimer.cpp:189
#29 0x6f0b2414 in g_timeout_dispatch (source_data=0x59e5a8,
current_time=0xeffff0f8, user_data=0x5a30d8)
at /net/ralf/group/jlnance/tmp/src/glib-1.2.0/gmain.c:1147
#30 0x6f0af454 in g_main_dispatch (current_time=0xeffff0f8)
at /net/ralf/group/jlnance/tmp/src/glib-1.2.0/gmain.c:647
#31 0x6f0b0650 in g_main_iterate (block=1, dispatch=1)
at /net/ralf/group/jlnance/tmp/src/glib-1.2.0/gmain.c:854
#32 0x6f0b0ae4 in g_main_run (loop=0x38f0d8)
at /net/ralf/group/jlnance/tmp/src/glib-1.2.0/gmain.c:912
#33 0x6edf3144 in gtk_main ()
at /net/ralf/group/jlnance/tmp/src/gtk+-1.2.0/gtk/gtkmain.c:475
#34 0x6fd2ef54 in nsAppShell::Run (this=0x165328)
at /net/ralf/group/jlnance/tmp/src/mozilla/widget/src/gtk/nsAppShell.cpp:198
#35 0x6ff68ea0 in nsAppShellService::Run (this=0x1df020)
at
/net/ralf/group/jlnance/tmp/src/mozilla/xpfe/appshell/src/nsAppShellService.cpp:391
#36 0x62ad4 in main (argc=1, argv=0xeffff4b4)
at
/net/ralf/group/jlnance/tmp/src/mozilla/xpfe/bootstrap/nsAppRunner.cpp:462
Updated•25 years ago
|
Assignee: bruce → rickg
Comment 2•25 years ago
|
||
This shouldn't be assigned to me ..
Updated•25 years ago
|
Whiteboard: stored in kipp's pile by rickg
Target Milestone: M15
Comment 4•25 years ago
|
||
Accepted for storage.
If you let the debug version continue running you would see this message:
nsContainerFrame: FrameInner(iframe)(1)@0x84bb4b0 didn't set max-element-size!
Which means that the iframe implementation isn't setting max-element-size
information properly.
The following trivial test case (for the viewer) reproduces the problem:
<html>
<body>
<table>
<tr>
<td>
<iframe width=200 height=200 src=bww.html>
Whatever you do, don't show this!
</iframe>
</td>
</tr>
</table>
</body>
</html>
Fixed. Note that the problem is benign because the outer-frame code doesn't look
at the inner-frame's max-element-size. However, to keep things quite with all
the debug checks lying around...
Updated•25 years ago
|
Status: RESOLVED → VERIFIED
Comment 7•25 years ago
|
||
Fixed in the July 6 build.
You need to log in
before you can comment on or make changes to this bug.
Description
•