Closed Bug 66792 Opened 24 years ago Closed 24 years ago

Freeze while loading page

Categories

(Core :: Layout, defect)

defect
Not set
critical

Tracking

()

VERIFIED DUPLICATE of bug 42138
mozilla0.9.2

People

(Reporter: andre, Assigned: waterson)

References

()

Details

(Keywords: hang, perf)

Attachments

(2 files)

b: 2001-01-26-04 os: w2k reproduceable after having loaded ca. 50% and page displays, mozilla begins to hang using 100% cpu and does not respond until manually killed
I can confirm this bug with w2k build 2001012304
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: this page sends mozilla to hell → Freeze while loading page
Also in Mac build.All/All.
OS: Windows 2000 → All
Hardware: PC → All
changing servity from blocker to critical. and adding keyword
Keywords: hang
Severity: blocker → critical
Confirmed. I've been seeing intermitten hangs for the last 2 or 3 days (starting 20010123, I think), but this is the first URL that consistently causes the problem.
I've created a smaller testcase at: http://homepages.tig.com.au/~mcgarry/moz/66792/66792.l.html Note that the page does not freeze mozilla indefinately, only for a while (which is why the testcase isn't smaller, as the freeze becomes less noticable on my PC). The pauses seem to occur when the images start coming in (the images have no width attribute set in html). With the images removed, there is no noticable lag: http://homepages.tig.com.au/~mcgarry/moz/66792/66792.l.noimages.html Also with images, and no outer-lying table, there is no noticable lag either: http://homepages.tig.com.au/~mcgarry/moz/66792/66792.l.notable.html I hope this helps :)
over to Layout
Assignee: asa → karnaze
Component: Browser-General → Layout
QA Contact: doronr → petersen
Looks like list numbering performance.
Keywords: perf
I'll take a look. I have some related list number bugs.
Assignee: karnaze → waterson
Target Milestone: --- → mozilla0.9
So there are a couple problems here. This web page is basically a big, one-cell table. Inside are about 32 images, most of which have no width/height information. The page initially loads pretty quickly, but then goes off into space once the image width & height information arrives and those frames get reflowed. There are also nested <font> tags which exacerbate the problem. karnaze: could you give this page a quick try with your new table reflow magic? I'm wondering if that will make things better...
*** Bug 69950 has been marked as a duplicate of this bug. ***
I tried the new table reflow changes and it still appears to hang on attachment #2 [review] (I gave up after about 2 minutes). The problem may be an infinite loop in the block code. In the debugger, every time I broke, I saw the following stack, and it was always the same table cell frame! nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e07a7c, int * 0x00129ac0, int 24) line 7094 + 33 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e07994, int * 0x00129ac0, int 24) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e07994, int * 0x00129ac0, int 23) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9d48, int * 0x00129ac0, int 23) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9850, int * 0x00129ac0, int 22) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2b048, int * 0x00129ac0, int 22) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2b048, int * 0x00129ac0, int 21) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2b080, int * 0x00129ac0, int 21) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2b080, int * 0x00129ac0, int 20) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2b0b8, int * 0x00129ac0, int 20) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a658, int * 0x00129ac0, int 19) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a690, int * 0x00129ac0, int 19) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a690, int * 0x00129ac0, int 18) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a6c8, int * 0x00129ac0, int 18) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a6c8, int * 0x00129ac0, int 17) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a700, int * 0x00129ac0, int 17) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a700, int * 0x00129ac0, int 16) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a738, int * 0x00129ac0, int 16) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a738, int * 0x00129ac0, int 15) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a770, int * 0x00129ac0, int 15) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a770, int * 0x00129ac0, int 14) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e2a7a8, int * 0x00129ac0, int 14) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9f40, int * 0x00129ac0, int 13) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9f78, int * 0x00129ac0, int 13) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9f78, int * 0x00129ac0, int 12) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9fb0, int * 0x00129ac0, int 12) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9fb0, int * 0x00129ac0, int 11) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9fe8, int * 0x00129ac0, int 11) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00de9fe8, int * 0x00129ac0, int 10) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00dea020, int * 0x00129ac0, int 10) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00dea020, int * 0x00129ac0, int 9) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00dea058, int * 0x00129ac0, int 9) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e05a34, int * 0x00129ac0, int 8) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e059fc, int * 0x00129ac0, int 8) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e059fc, int * 0x00129ac0, int 7) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e059c4, int * 0x00129ac0, int 7) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e059c4, int * 0x00129ac0, int 6) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e0598c, int * 0x00129ac0, int 6) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e0598c, int * 0x00129ac0, int 5) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e05954, int * 0x00129ac0, int 5) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e05954, int * 0x00129ac0, int 4) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e0591c, int * 0x00129ac0, int 4) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e0591c, int * 0x00129ac0, int 3) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e058e4, int * 0x00129ac0, int 3) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e058e4, int * 0x00129ac0, int 2) line 7157 + 27 bytes nsBlockFrame::RenumberListsIn(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e058ac, int * 0x00129ac0, int 2) line 7066 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e058ac, int * 0x00129ac0, int 1) line 7157 + 27 bytes nsBlockFrame::RenumberListsInBlock(nsIPresContext * 0x0309bee0, nsBlockFrame * 0x00e05860, int * 0x00129ac0, int 1) line 7033 + 24 bytes nsBlockFrame::RenumberListsFor(nsIPresContext * 0x0309bee0, nsIFrame * 0x00e05860, int * 0x00129ac0, int 0) line 7124 + 27 bytes nsBlockFrame::RenumberListsInBlock(nsIPresContext * 0x0309bee0, nsBlockFrame * 0x00e05814, int * 0x00129ac0, int 0) line 7033 + 24 bytes nsBlockFrame::RenumberLists(nsIPresContext * 0x0309bee0) line 7016 nsBlockFrame::Reflow(nsBlockFrame * const 0x00e05814, nsIPresContext * 0x0309bee0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1622 nsBlockReflowContext::DoReflowBlock(nsHTMLReflowState & {...}, nsReflowReason eReflowReason_Incremental, nsIFrame * 0x00e05814, const nsRect & {x=0 y=40093 width=8250 height=1073741824}, int 1, int 240, int 0, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 568 + 36 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x00e05814, const nsRect & {x=0 y=40093 width=8250 height=1073741824}, int 1, int 240, int 0, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 336 + 50 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x00e15cf0, int * 0x0012a620) line 3901 + 56 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x00e15cf0, int * 0x0012a620, int 1) line 3164 + 23 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2971 + 27 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x00dd71f8, nsIPresContext * 0x0309bee0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1743 + 15 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x00dd71f8, nsIPresContext * 0x0309bee0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 15, int 15, unsigned int 0, unsigned int & 0) line 695 + 31 bytes nsTableCellFrame::Reflow(nsTableCellFrame * const 0x00dd719c, nsIPresContext * 0x0309bee0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 686
End-of-milestone reality check.
Target Milestone: mozilla0.9 → mozilla0.9.1
Blocks: 77421
URL changed a bit.
added keyword on request
Keywords: nsbeta1
Target Milestone: mozilla0.9.1 → mozilla0.9.2
This is a dup of bug 42138, and is fixed by the patch there. *** This bug has been marked as a duplicate of 42138 ***
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
verified
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: