Closed
Bug 4581
Opened 26 years ago
Closed 26 years ago
Complex forms in tables result in several minutes freeze
Categories
(Core :: DOM: Core & HTML, defect, P2)
Core
DOM: Core & HTML
Tracking
()
M4
People
(Reporter: elig, Assigned: pollmann)
References
()
Details
* TITLE/SUMMARY
Complex forms in tables result in several minute freeze when viewing page
* STEPS TO REPRODUCE
0) Launch Apprunner
1) View http://www.prometheus-music.com/gecko/wire4a.html
2) View http://www.prometheus-music.com/gecko/wire4b.html
*** 3) View http://www.prometheus-music.com/gecko/wire4c.html
(...both of which are derived from wire.ap.org.)
* RESULT
- What happened
Upon viewing 4a, an approximately 5 second pause takes place before each of the
four form pop-up menus draw.
Upon viewing 4b, an approximately 2 minute pause takes place before anything is
drawn. (wire4b.html is the same page as 4a, but with the table that contained the
popup removed.)
Upon viewing 4c, an approximately seven second pause takes place before the
single pop-up menu is drawn. (Wire 4c is the same page as 4a, but with three of
the four complicated forms removed.)
--> During this pause, the application is quite frozen; can't move or resize
window, and menu bar generally doesn't respond. <--
(The actual wire.ap.org page exhibits other problems on Seamonkey, specifically,
the images don't display upon finally being drawn. However, I'm assuming that
this is probably a side-effect of this bug, and not documenting separately.)
- What was expected
Page to draw within several seconds upon opening URL.
* REGRESSION
- Occurs On
Mac OS Apprunner (4.5.99 optimized build)
Win32 Apprunner (4.5.99 optimized build [NT 4, Service Pack 3])
Linux Apprunner (4.5.99 optimized build)
- Doesn't Occur On
Mac OS Communicator 4.51 (RTM)
* CONFIGURATIONS TESTED
- [Mac] Power Mac 8500/120 (233 Mhz 604e), 64 MB RAM (VM on; 1 MB of VM used),
1024x768 (Thousands of Colors), Mac OS 8.5.1
- [Win32] Vectra VL (233 Mhz P2), 96 MB RAM, 800x600 (True Color), NT 4.0 SP3.
- [Linux] Vectra VL (266 Mhz P2), 96 MB RAM.
* STACK CRAWL
[no crash, but just to give an idea of where it's hanging around while paused...]
Calling chain using A6/R1 links
Back chain ISA Caller
00000000 PPC 0BAE6A90
022D3C40 PPC 0BAE5BA8 main+0053C
022D3B50 PPC 0BADC448 nsAppShellService::Run()+00018
022D3B10 PPC 0ACE9FA8 nsAppShell::Run()+00038
022D3A90 PPC 0ACEA8D0 nsMacMessagePump::DoMessagePump()+0003C
022D3A40 PPC 0ACEAB38 nsMacMessagePump::DispatchEvent(int, EventRecord*)+
00144
022D39F0 PPC 0AEE4C90 Repeater::DoRepeaters(const EventRecord&)+00030
022D39B0 PPC 0AEDD2E4 TimerPeriodical::RepeatAction(const EventRecord&)+
00048
022D3960 PPC 0AEDCE40 TimerImpl::Fire()+00024
022D3920 PPC 0AE56DFC nsNetlibService::NetPollSocketsCallback(nsITimer*,
void*)+0001C
022D38E0 PPC 0AE33AE8 NET_PollSockets+000A4
022D3890 PPC 0AE2F3AC NET_ProcessNet+003C4
022D3500 PPC 0AE4ECC4 net_ProcessHTTP+00108
022D3090 PPC 0AE4E5EC net_pull_http_data+000D4
022D3040 PPC 0AE24B10 net_MemCacheWrite+001C8
022D2FE0 PPC 0AE5A5C4 stub_put_block(_NET_StreamClass*, const char*,
long)+00080
022D2F90 PPC 0A846F48 nsDocumentBindInfo::OnDataAvailable(nsIURL*,
nsIInputStream*, un
signed int)+00074
022D2F40 PPC 0AD12AF0 nsParser::OnDataAvailable(nsIURL*, nsIInputStream*,
unsigned int
)+001A8
022D2EE0 PPC 0AD1259C nsParser::ResumeParse(nsIDTD*)+00118
022D2E90 PPC 0AD05734 CNavDTD::WillInterruptParse()+00020
022D2E50 PPC 0A993D60 HTMLContentSink::WillInterrupt()+0003C
022D2E10 PPC 0A99A8D0 nsHTMLDocument::ContentAppended(nsIContent*, int)+
000D8
022D2DB0 PPC 0A96AB64 nsDocument::ContentAppended(nsIContent*, int)+0004C
022D2D50 PPC 0A97AFE0 PresShell::ContentAppended(nsIDocument*, nsIContent*
, int)+00060
022D2D00 PPC 0A978254 PresShell::ExitReflowLock()+0002C
022D2CC0 PPC 0A979D58 PresShell::ProcessReflowCommands()+000D4
022D2C40 PPC 0A9EF320 nsHTMLReflowCommand::Dispatch(nsIPresContext&,
nsHTMLReflowMetri
cs&, const nsSize&, nsIRenderingContext&)+000B8
022D2B40 PPC 0AB838A0 ViewportFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, con
st nsHTMLReflowState&, unsigned int&)+00278
022D29D0 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022D2970 PPC 0A9F0654 nsScrollFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, con
st nsHTMLReflowState&, unsigned int&)+0052C
022D2650 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022D25F0 PPC 0A9FC778 RootFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, const n
sHTMLReflowState&, unsigned int&)+00228
022D2440 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022D23E0 PPC 0AB6E50C nsAreaFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, const
nsHTMLReflowState&, unsigned int&)+0037C
022D22B0 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022D16F0 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022D1670 PPC 0AB061B0 nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000A0
022D1620 PPC 0AB07200 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineBox*,
int*)+00180
022D1490 PPC 0AB628B4 nsBlockReflowContext::ReflowBlock(nsIFrame*, const
nsRect&, int,
int, int, nsMargin&, unsigned int&)+00268
022D1370 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022D07B0 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022D0730 PPC 0AB061B0 nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000A0
022D06E0 PPC 0AB07200 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineBox*,
int*)+00180
022D0550 PPC 0AB628B4 nsBlockReflowContext::ReflowBlock(nsIFrame*, const
nsRect&, int,
int, int, nsMargin&, unsigned int&)+00268
022D0430 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022CF870 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022CF7F0 PPC 0AB061B0 nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000A0
022CF7A0 PPC 0AB07200 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineBox*,
int*)+00180
022CF610 PPC 0AB628B4 nsBlockReflowContext::ReflowBlock(nsIFrame*, const
nsRect&, int,
int, int, nsMargin&, unsigned int&)+00268
022CF4F0 PPC 0A9E68B8 nsTableOuterFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&,
const nsHTMLReflowState&, unsigned int&)+00278
022CF140 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CF0E0 PPC 0A9DDF70 nsTableFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001A4
022CEFD0 PPC 0A9DE47C nsTableFrame::ResizeReflowPass1(nsIPresContext&,
nsHTMLReflowMet
rics&, const nsHTMLReflowState&, unsigned int&, nsTableRowGroupFrame*,
nsReflowReason, int)+0
0178
022CED10 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CECB0 PPC 0A9EC4BC nsTableRowGroupFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetric
s&, const nsHTMLReflowState&, unsigned int&)+00170
022CEBC0 PPC 0A9EB21C
nsTableRowGroupFrame::ReflowMappedChildren(nsIPresContext&, nsHT
MLReflowMetrics&, RowGroupReflowState&, unsigned int&, nsTableRowFrame*,
nsReflowReason, int)
+00140
022CEA40 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CE9E0 PPC 0A9E9E18 nsTableRowFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, c
onst nsHTMLReflowState&, unsigned int&)+000FC
022CE890 PPC 0A9E8A28 nsTableRowFrame::InitialReflow(nsIPresContext&,
nsHTMLReflowMetr
ics&, RowReflowState&, unsigned int&, nsTableCellFrame*, int)+0021C
022CE610 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CE5B0 PPC 0A9D50E8 nsTableCellFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&,
const nsHTMLReflowState&, unsigned int&)+002C4
022CE3A0 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CE340 PPC 0AB6E50C nsAreaFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, const
nsHTMLReflowState&, unsigned int&)+0037C
022CE210 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022CD650 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022CD5D0 PPC 0AB061B0 nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000A0
022CD580 PPC 0AB07200 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineBox*,
int*)+00180
022CD3F0 PPC 0AB628B4 nsBlockReflowContext::ReflowBlock(nsIFrame*, const
nsRect&, int,
int, int, nsMargin&, unsigned int&)+00268
022CD2D0 PPC 0A9E68B8 nsTableOuterFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&,
const nsHTMLReflowState&, unsigned int&)+00278
022CCF20 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CCEC0 PPC 0A9DDF70 nsTableFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001A4
022CCDB0 PPC 0A9DE47C nsTableFrame::ResizeReflowPass1(nsIPresContext&,
nsHTMLReflowMet
rics&, const nsHTMLReflowState&, unsigned int&, nsTableRowGroupFrame*,
nsReflowReason, int)+0
0178
022CCAF0 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CCA90 PPC 0A9EC4BC nsTableRowGroupFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetric
s&, const nsHTMLReflowState&, unsigned int&)+00170
022CC9A0 PPC 0A9EB21C
nsTableRowGroupFrame::ReflowMappedChildren(nsIPresContext&, nsHT
MLReflowMetrics&, RowGroupReflowState&, unsigned int&, nsTableRowFrame*,
nsReflowReason, int)
+00140
022CC820 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CC7C0 PPC 0A9E9E18 nsTableRowFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, c
onst nsHTMLReflowState&, unsigned int&)+000FC
022CC670 PPC 0A9E8A28 nsTableRowFrame::InitialReflow(nsIPresContext&,
nsHTMLReflowMetr
ics&, RowReflowState&, unsigned int&, nsTableCellFrame*, int)+0021C
022CC3F0 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CC390 PPC 0A9D50E8 nsTableCellFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&,
const nsHTMLReflowState&, unsigned int&)+002C4
022CC180 PPC 0A965748 nsContainerFrame::ReflowChild(nsIFrame*,
nsIPresContext&, nsHTML
ReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00088
022CC120 PPC 0AB6E50C nsAreaFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, const
nsHTMLReflowState&, unsigned int&)+0037C
022CBFF0 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022CB430 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022CB3B0 PPC 0AB061B0 nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000A0
022CB360 PPC 0AB07200 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState&,
nsLineBox*,
int*)+00180
022CB1D0 PPC 0AB628B4 nsBlockReflowContext::ReflowBlock(nsIFrame*, const
nsRect&, int,
int, int, nsMargin&, unsigned int&)+00268
022CB0B0 PPC 0AB04FF4 nsBlockFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&, cons
t nsHTMLReflowState&, unsigned int&)+001F4
022CA4F0 PPC 0AB05D04 nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&)+
00064
022CA470 PPC 0AB061CC nsBlockFrame::ReflowLine(nsBlockReflowState&,
nsLineBox*, int*)+
000BC
022CA420 PPC 0AB0775C nsBlockFrame::ReflowInlineFrames(nsBlockReflowState&
, nsLineBox*
, int*)+00124
022CA3A0 PPC 0AB079B4 nsBlockFrame::ReflowInlineFrame(nsBlockReflowState&,
nsLineBox*,
nsIFrame*, unsigned char*)+00048
022CA330 PPC 0AB0D620 nsLineLayout::ReflowFrame(nsIFrame*, nsIFrame**,
unsigned int&)+
00318
022CA1D0 PPC 0AB1BD00 nsFormControlFrame::Reflow(nsIPresContext&,
nsHTMLReflowMetrics&
, const nsHTMLReflowState&, unsigned int&)+0045C
022CA0D0 PPC 0AB276B4
nsSelectControlFrame::PostCreateWidget(nsIPresContext*, int&, in
t&)+002C8
022CA030 PPC 0AB27C50 nsSelectControlFrame::Reset()+000F8
022C9FD0 PPC 0AA99588 nsHTMLOptionElement::SetIndex(int)+00038
022C9F80 PPC 0AA06840 nsGenericHTMLElement::SetHTMLAttribute(nsIAtom*,
const nsHTMLVal
ue&, int)+0014C
022C9F10 PPC 0A96AF20 nsDocument::AttributeChanged(nsIContent*, nsIAtom*,
int)+00054
022C9EB0 PPC 0A97AEEC PresShell::AttributeChanged(nsIDocument*,
nsIContent*, nsIAtom*,
int)+0004C
022C9E60 PPC 0A9882D8 StyleSetImpl::AttributeChanged(nsIPresContext*,
nsIContent*, nsI
Atom*, int)+00018
022C9E20 PPC 0AB924BC
nsCSSFrameConstructor::AttributeChanged(nsIPresContext*, nsICont
ent*, nsIAtom*, int)+00394
022C9D20 PPC 0AB93FDC
nsCSSFrameConstructor::RecreateFramesForContent(nsIPresContext*,
nsIContent*)+000B0
022C9CD0 PPC 0AB90DE8
nsCSSFrameConstructor::ContentInserted(nsIPresContext*, nsIConte
nt*, nsIContent*, int)+003BC
022C9B80 PPC 0AB8FAF8
nsCSSFrameConstructor::ConstructFrame(nsIPresContext*, nsIConten
t*, nsIFrame*, nsAbsoluteItems&, nsFrameItems&, nsAbsoluteItems&,
nsAbsoluteItems&)+00084
022C9AA0 PPC 0AB8F9B0
nsCSSFrameConstructor::ResolveStyleContext(nsIPresContext*, nsIF
rame*, nsIContent*, nsIAtom*, nsIStyleContext**)+00228
022C99B0 PPC 0A975BE4 nsPresContext::ResolveStyleContextFor(nsIContent*,
nsIStyleConte
xt*, int, nsIStyleContext**)+00094
022C9930 PPC 0A9875FC StyleSetImpl::ResolveStyleFor(nsIPresContext*,
nsIContent*, nsIS
tyleContext*, int)+0017C
022C9890 PPC 0A987280 StyleSetImpl::GetContext(nsIPresContext*,
nsIStyleContext*, nsIA
tom*, nsISupportsArray*, int, int&)+00124
022C9820 PPC 0A985548 NS_NewStyleContext(nsIStyleContext**,
nsIStyleContext*, nsIAtom*
, nsISupportsArray*, nsIPresContext*)+00078
022C97C0 PPC 0A983A10 StyleContextImpl::StyleContextImpl(nsIStyleContext*,
nsIAtom*, n
sISupportsArray*, nsIPresContext*)+00170
022C9770 PPC 0A984D3C StyleContextImpl::RemapStyle(nsIPresContext*)+0016C
022C9710 PPC 0AEB2138 nsSupportsArray::EnumerateForwards(int (*
)(nsISupports*, void*),
void*) const+0003C
022C96C0 PPC 0A984B80 MapStyleRule(nsISupports*, void*)+00020
022C9680 PPC 0A9BFB4C CSSStyleRuleImpl::MapStyleInto(nsIStyleContext*,
nsIPresContext*
)+00010
Closing log
Comment 1•26 years ago
|
||
Beauty test cases, Eli.
This sounds very much like bug #4387. See the discussion there between troy
and pollman (who apparently has just checked in a fix). Dup?
Reporter | ||
Comment 2•26 years ago
|
||
(That's high praise coming from Mr. John "Give me 10 pages of incomprehensible
HTML and I'll give you a clear test case in 10 tags or less" Morrison. ;)
But, yeah, I agree; this is probably one of a bunch of duplicates of 4387. (Will
confirm that it's fixed in the same build that 4387 is fixed.)
Updated•26 years ago
|
Assignee: karnaze → pollmann
Priority: P3 → P2
Target Milestone: M4
Assignee | ||
Updated•26 years ago
|
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Comment 3•26 years ago
|
||
I checked in a fix for 4387 and it's kin yesterday.
Here's my timings of the pages before and after the fix. It's on a Pentium
166MHz 64 MB RAM, Windows NT 4.0. Pages were mirrored locally to eliminate DNS
and traffic effects.
wire4a.html 98 sec. before -> <1 sec. after
wire4b.html 15 sec. before -> <1 sec. after
wire4c.html 6 sec. before -> <1 sec. after
The fix was checked in sometime around 5PM 08-Apr-1999, so any build after that
should be OK.
(I tried on Linux and the times were closer to the 10 second range on a PII 266
128MB after the fix, but still a vast improvement over yesterday.)
*** This bug has been marked as a duplicate of 4387 ***
Reporter | ||
Comment 4•26 years ago
|
||
<Thanks!>
Updated•6 years ago
|
Component: HTML: Form Submission → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•