Closed Bug 6726 Opened 25 years ago Closed 25 years ago

Purify BSR error on startup

Categories

(Core :: Layout, defect, P2)

Sun
Solaris
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: jim_nance, Assigned: buster)

Details

(Whiteboard: stored in kipp's pile by rickg)

Attachments

(1 file)

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
Attached file purify output (deleted) —
Assignee: bruce → rickg
This shouldn't be assigned to me ..
Assignee: rickg → kipp
Storing in kipps pile till I can switch to working on layout issues.
Whiteboard: stored in kipp's pile by rickg
Target Milestone: M15
Accepted for storage.
Status: NEW → ASSIGNED
Priority: P3 → P2
Target Milestone: M15 → M8
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>
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
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...
Status: RESOLVED → VERIFIED
Fixed in the July 6 build.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: