Closed Bug 66792 Opened 24 years ago Closed 23 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: 23 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: