If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

datek.com - stock tracker hangs mozilla

RESOLVED FIXED in mozilla1.1alpha



16 years ago
16 years ago


(Reporter: Brian Degenhardt, Assigned: Marc Attinasi)




Firefox Tracking Flags

(Not tracked)




(2 attachments)



16 years ago
you need to have a datek account for this.  Sorry, I can't distill the problem.

* go to https://investment.datek.com/
* Select 'Portfolio' from the top left drop down
* Click on '+- Stock Tracker' in the middle-right of the page
* mozilla-bin hangs in what feels like an infinite loop.

Comment 1

16 years ago
Here's a backtrace after attaching to the spinning mozilla:

#0  0x413e472f in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#1  0x413e44af in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#2  0x413f4c86 in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#3  0x4147966d in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#4  0x4147d7f7 in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#5  0x4147b099 in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#6  0x40fb111a in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#7  0x41425e99 in NSGetModule () from /usr/lib/mozilla/components/libgklayout.so
#8  0x40f6127a in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#9  0x40e800be in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#10 0x40ec4054 in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#11 0x40ec4c39 in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#12 0x40ec9674 in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#13 0x401701e2 in XPTC_InvokeByIndex () at eval.c:41
#14 0x407bd1dc in NSGetModule () from /usr/lib/mozilla/components/libxpconnect.so
#15 0x407c343d in NSGetModule () from /usr/lib/mozilla/components/libxpconnect.so
#16 0x4007e4f0 in js_Invoke () at eval.c:41
#17 0x4007e741 in js_InternalInvoke () at eval.c:41
#18 0x40091d61 in js_SetProperty () at eval.c:41
#19 0x40085609 in js_Interpret () at eval.c:41
#20 0x4007e547 in js_Invoke () at eval.c:41
#21 0x400862ef in js_Interpret () at eval.c:41
#22 0x4007e547 in js_Invoke () at eval.c:41
#23 0x4007e741 in js_InternalInvoke () at eval.c:41
#24 0x40060b16 in JS_CallFunctionValue () at eval.c:41
#25 0x412af974 in NSGetModule () from /usr/lib/mozilla/components/libjsdom.so
#26 0x412dc67b in NSGetModule () from /usr/lib/mozilla/components/libjsdom.so
#27 0x40e14a0d in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#28 0x40e16692 in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#29 0x412b3b24 in NSGetModule () from /usr/lib/mozilla/components/libjsdom.so
#30 0x40f6c252 in NSGetModule () from /usr/lib/mozilla/components/libgkcontent.so
#31 0x40d94ce7 in NSGetModule () from /usr/lib/mozilla/components/libdocshell.so
#32 0x40da0a84 in NSGetModule () from /usr/lib/mozilla/components/libdocshell.so
#33 0x40d949a9 in NSGetModule () from /usr/lib/mozilla/components/libdocshell.so
#34 0x40d3fbcf in NSGetModule () from /usr/lib/mozilla/components/liburiloader.so
#35 0x40d3f0e3 in NSGetModule () from /usr/lib/mozilla/components/liburiloader.so
#36 0x40d3efc7 in NSGetModule () from /usr/lib/mozilla/components/liburiloader.so
#37 0x40d3ee3a in NSGetModule () from /usr/lib/mozilla/components/liburiloader.so
#38 0x407ef99a in NSGetModule () from /usr/lib/mozilla/components/libnecko.so
#39 0x4107f258 in NSGetModule () from /usr/lib/mozilla/components/libimglib2.so
#40 0x4107e258 in NSGetModule () from /usr/lib/mozilla/components/libimglib2.so
#41 0x4107d132 in NSGetModule () from /usr/lib/mozilla/components/libimglib2.so
#42 0x40800cfc in NSGetModule () from /usr/lib/mozilla/components/libnecko.so
#43 0x40835705 in NSGetModule () from /usr/lib/mozilla/components/libnecko.so
#44 0x4084b719 in NSGetModule () from /usr/lib/mozilla/components/libnecko.so
#45 0x407f3693 in NSGetModule () from /usr/lib/mozilla/components/libnecko.so
#46 0x40159e9b in PL_HandleEvent () at eval.c:41
#47 0x40159da9 in PL_ProcessPendingEvents () at eval.c:41
#48 0x4015ae6b in nsEventQueueImpl::ProcessPendingEvents () at eval.c:41
#49 0x406f5506 in NSGetModule () from /usr/lib/mozilla/components/libwidget_gtk.so
#50 0x406f5255 in NSGetModule () from /usr/lib/mozilla/components/libwidget_gtk.so
#51 0x40385f9e in g_io_unix_dispatch () from /usr/lib/libglib-1.2.so.0
#52 0x40387773 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0
#53 0x40387d39 in g_main_iterate () from /usr/lib/libglib-1.2.so.0
#54 0x40387eec in g_main_run () from /usr/lib/libglib-1.2.so.0
#55 0x402a3333 in gtk_main () from /usr/lib/libgtk-1.2.so.0
#56 0x406f59f6 in NSGetModule () from /usr/lib/mozilla/components/libwidget_gtk.so
#57 0x406d807a in NSGetModule () from /usr/lib/mozilla/components/libnsappshell.so
#58 0x080512b5 in NS_CreateNativeAppSupport () at eval.c:41
#59 0x08051c1f in main () at eval.c:41
#60 0x404ce507 in __libc_start_main (main=0x8051ad4 <main>, argc=1,
    init=0x804bf44 <_init>, fini=0x8052ae4 <_fini>, rtld_fini=0x4000dc14
    stack_end=0xbffff89c) at ../sysdeps/generic/libc-start.c:129

Comment 2

16 years ago
Created attachment 61808 [details]

Comment 3

16 years ago
The bug occurs inside the javascript at
https://investment.datek.com/scripts.tracker.js line 84 with this statement:
document.getElementById(layer).style.position = 'relative';

I've included the full document due to it's protection.
Assignee: jst → rogerl
Component: DOM Level 0 → Javascript Engine
Keywords: hang
OS: Linux → All
QA Contact: amar → pschwartau
Not a JS engine bug.
Assignee: rogerl → jst
Component: Javascript Engine → DOM Style
QA Contact: pschwartau → ian
Brian, any possibility of you getting us a stacktrace from a debug build?

Comment 6

16 years ago
np.  I'll fire up the build now and I'll send you the stack trace Monday when
the build finishes.

Comment 8

16 years ago
Here's your stack trace from a debug build:

#0  0x4233e7f3 in nsLineList_iterator::operator!= (this=0xbfffc550, aOther=
      {mCurrent = 0x89244cc, mListLink = 0x89244cc}) at nsLineBox.h:617
#1  0x42179d4f in nsBlockFrame::DoRemoveFrame (this=0x8924490,
    aDeletedFrame=0x8af988c) at nsBlockFrame.cpp:4885
#2  0x42179b01 in nsBlockFrame::RemoveFrame (this=0x8924490,
    aPresShell=@0x891efa0, aListName=0x0, aOldFrame=0x8af988c) at
#3  0x4219827d in FrameManager::RemoveFrame (this=0x85c9470,
    aPresShell=@0x891efa0, aParentFrame=0x8924490, aListName=0x0,
    at nsFrameManager.cpp:945
#4  0x42257351 in nsCSSFrameConstructor::ContentRemoved (this=0x8755ac0,
    aContainer=0x89c5230, aChild=0x8aa0a28, aIndexInContainer=0) at
#5  0x4225d950 in nsCSSFrameConstructor::RecreateFramesForContent (this=0x8755ac0, 
    aPresContext=0x8917308, aContent=0x8aa0a28, aInlineStyle=1,
    aStyleContext=0x8af97f8) at nsCSSFrameConstructor.cpp:11755
#6  0x422596f1 in nsCSSFrameConstructor::AttributeChanged (this=0x8755ac0,
    aContent=0x8aa0a28, aNameSpaceID=0, aAttribute=0x817b6b0, aModType=1, aHint=6)
    at nsCSSFrameConstructor.cpp:10385
#7  0x41a12739 in StyleSetImpl::AttributeChanged (this=0x89d3960,
    aContent=0x8aa0a28, aNameSpaceID=0, aAttribute=0x817b6b0, aModType=1, aHint=6)
    at nsStyleSet.cpp:1472
#8  0x421de79b in PresShell::AttributeChanged (this=0x891efa0, aDocument=0x8644810, 
    aContent=0x8aa0a28, aNameSpaceID=0, aAttribute=0x817b6b0, aModType=1, aHint=6)
    at nsPresShell.cpp:5110
#9  0x41996452 in nsDocument::AttributeChanged (this=0x8644810,
aChild=0x8aa0a28, aNameSpaceID=0, 
    aAttribute=0x817b6b0, aModType=1, aHint=6) at nsDocument.cpp:1808
#10 0x4185e352 in nsHTMLDocument::AttributeChanged (this=0x8644810,
    aNameSpaceID=0, aAttribute=0x817b6b0, aModType=1, aHint=6) at
#11 0x418bc815 in nsDOMCSSAttributeDeclaration::ParsePropertyValue (this=0x88c0790, 
    aPropName=@0xbfffce68, aPropValue=@0x8a060b8) at nsDOMCSSAttrDeclaration.cpp:282
#12 0x418bdb0c in CallSetProperty (aDecl=0x88c0790, aPropName=@0xbfffce68,
    at nsDOMCSSDeclaration.cpp:227
#13 0x418c23b7 in nsDOMCSSDeclaration::SetPosition (this=0x88c0790,
    at nsDOMCSSDeclaration.cpp:339
#14 0x4020f100 in XPTC_InvokeByIndex (that=0x88c0794, methodIndex=192,
    params=0xbfffd040) at xptcinvoke_unixish_x86.cpp:153
#15 0x40c90e60 in XPCWrappedNative::CallMethod (ccx=@0xbfffd130, mode=CALL_SETTER)
    at xpcwrappednative.cpp:2009
#16 0x40cad5c9 in XPCWrappedNative::SetAttribute (ccx=@0xbfffd130) at
#17 0x40c9976a in XPC_WN_GetterSetter (cx=0x891aa08, obj=0x8779230, argc=1,
    vp=0xbfffd2d0) at xpcwrappednativejsops.cpp:1290
#18 0x4009a20c in js_Invoke (cx=0x891aa08, argc=1, flags=2) at jsinterp.c:832
#19 0x4009a60e in js_InternalInvoke (cx=0x891aa08, obj=0x8779230,
fval=142053984, flags=0, argc=1, 
    argv=0xbfffd8c4, rval=0xbfffd8c4) at jsinterp.c:924
#20 0x400bc944 in js_SetProperty (cx=0x891aa08, obj=0x8779230, id=139126816,
    at jsobj.c:2599
#21 0x400a69dd in js_Interpret (cx=0x891aa08, result=0xbfffda0c) at jsinterp.c:2641
#22 0x4009a296 in js_Invoke (cx=0x891aa08, argc=0, flags=0) at jsinterp.c:849
#23 0x400a8744 in js_Interpret (cx=0x891aa08, result=0xbfffdfec) at jsinterp.c:2798
#24 0x4009a296 in js_Invoke (cx=0x891aa08, argc=1, flags=2) at jsinterp.c:849
#25 0x4009a60e in js_InternalInvoke (cx=0x891aa08, obj=0x8763df0,
fval=142050512, flags=0, argc=1, 
    argv=0xbfffe378, rval=0xbfffe19c) at jsinterp.c:924
#26 0x4006ad9f in JS_CallFunctionValue (cx=0x891aa08, obj=0x8763df0,
fval=142050512, argc=1, 
    argv=0xbfffe378, rval=0xbfffe19c) at jsapi.c:3405
#27 0x41e72651 in nsJSContext::CallEventHandler (this=0x8965c40, aTarget=0x8763df0, 
    aHandler=0x87784d0, argc=1, argv=0xbfffe378, aBoolResult=0xbfffe238,
    at nsJSEnvironment.cpp:1010
#28 0x41eb0b24 in nsJSEventListener::HandleEvent (this=0x876f2d0, aEvent=0x88c0a48)
    at nsJSEventListener.cpp:180
#29 0x417c85d3 in nsEventListenerManager::HandleEventSubType (this=0x88d8cf0, 
    aListenerStruct=0x89dee38, aDOMEvent=0x88c0a48, aCurrentTarget=0x8965b60,
    aPhaseFlags=7) at nsEventListenerManager.cpp:1202
#30 0x417cacb7 in nsEventListenerManager::HandleEvent (this=0x88d8cf0,
    aEvent=0xbfffe810, aDOMEvent=0xbfffe7c4, aCurrentTarget=0x8965b60, aFlags=7, 
    aEventStatus=0xbfffe848) at nsEventListenerManager.cpp:1875
#31 0x41e78a64 in GlobalWindowImpl::HandleDOMEvent (this=0x8965b50,
    aEvent=0xbfffe810, aDOMEvent=0xbfffe7c4, aFlags=1, aEventStatus=0xbfffe848)
    at nsGlobalWindow.cpp:635
#32 0x419a7949 in DocumentViewerImpl::LoadComplete (this=0x88de040, aStatus=0)
    at nsDocumentViewer.cpp:1180
#33 0x414dabbf in nsDocShell::EndPageLoad (this=0x87514c0, aProgress=0x88f180c, 
    aChannel=0x88f05b8, aStatus=0) at nsDocShell.cpp:3417
#34 0x414eb014 in nsWebShell::EndPageLoad (this=0x87514c0, aProgress=0x88f180c,
    aStatus=0) at nsWebShell.cpp:911
#35 0x414da76c in nsDocShell::OnStateChange (this=0x87514c0, aProgress=0x88f180c, 
    aRequest=0x88f05b8, aStateFlags=131088, aStatus=0) at nsDocShell.cpp:3326
#36 0x413ebf13 in nsDocLoaderImpl::FireOnStateChange (this=0x88f17f8,
    aRequest=0x88f05b8, aStateFlags=131088, aStatus=0) at nsDocLoader.cpp:1109
#37 0x413eb004 in nsDocLoaderImpl::doStopDocumentLoad (this=0x88f17f8,
    aStatus=0) at nsDocLoader.cpp:738
#38 0x413ead2e in nsDocLoaderImpl::DocLoaderIsEmpty (this=0x88f17f8) at
#39 0x413eaa9d in nsDocLoaderImpl::OnStopRequest (this=0x88f17f8,
    aCtxt=0x8917308, aStatus=0) at nsDocLoader.cpp:575
#40 0x40d54c03 in nsLoadGroup::RemoveRequest (this=0x8644760, request=0x8a908e0,
    aStatus=0) at nsLoadGroup.cpp:525
#41 0x41bd100c in imgRequestProxy::OnStopRequest (this=0x8a908e0,
request=0x89ceff8, ctxt=0x0, 
    statusCode=0) at imgRequestProxy.cpp:368
#42 0x41bcf0cb in imgRequest::OnStopRequest (this=0x8931d20, aRequest=0x89ceff8,
    status=0) at imgRequest.cpp:617
#43 0x41bccb67 in ProxyListener::OnStopRequest (this=0x89cf0f8,
aRequest=0x89ceff8, ctxt=0x0, 
    status=0) at imgLoader.cpp:489
#44 0x40d6e7cf in nsStreamListenerTee::OnStopRequest (this=0x8a9bd18,
    context=0x0, status=0) at nsStreamListenerTee.cpp:24
#45 0x40dafcc2 in nsHttpChannel::OnStopRequest (this=0x89ceff8,
request=0x8a0e79c, ctxt=0x0, 
    status=0) at nsHttpChannel.cpp:2387
#46 0x40ddb5f0 in nsOnStopRequestEvent::HandleEvent (this=0x89730c8)
    at nsRequestObserverProxy.cpp:212
#47 0x40d5989c in nsARequestObserverEvent::HandlePLEvent (plev=0x89730c8)
    at nsRequestObserverProxy.cpp:115
#48 0x401ead20 in PL_HandleEvent (self=0x89730c8) at plevent.c:590
#49 0x401eb491 in PL_ProcessEventsBeforeID (aSelf=0x808cb80, aID=14826) at
#50 0x40b74165 in processQueue (aElement=0x808cb80, aData=0x39ea) at
#51 0x401a8da0 in nsVoidArray::EnumerateForwards (this=0x809f9f8, 
    aFunc=0x40b74138 <processQueue(void *, void *)>, aData=0x39ea) at
#52 0x40b741a8 in nsAppShell::ProcessBeforeID (aID=14826) at nsAppShell.cpp:472
#53 0x40b7cf82 in handle_gdk_event (event=0x81fe408, data=0x0) at
#54 0x40462d7f in gdk_event_dispatch () at
#55 0x40496773 in g_main_dispatch () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#56 0x40496d39 in g_main_iterate () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#57 0x40496eec in g_main_run () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#58 0x403b1333 in gtk_main () at ../../../dist/include/xpcom/nsCOMPtr.h:410
#59 0x40b73e19 in nsAppShell::Run (this=0x809f9e0) at nsAppShell.cpp:349
#60 0x40b11525 in nsAppShellService::Run (this=0x809f198) at
#61 0x08059c91 in main1 (argc=1, argv=0xbffff5f4, nativeApp=0x0) at
#62 0x0805a93b in main (argc=1, argv=0xbffff5f4) at nsAppRunner.cpp:1594
#63 0x405dd507 in __libc_start_main (main=0x805a730 <main>, argc=1,
    init=0x8054310 <_init>, fini=0x8062ee4 <_fini>, rtld_fini=0x4000dc14
    stack_end=0xbffff5ec) at ../sysdeps/generic/libc-start.c:129

Comment 9

16 years ago
playing with the debugger more, it seems that the problem occurs in
nsBlockFrame.cpp:4884 In this block of code:

  while (nsnull != aDeletedFrame) {
    while ((line != line_end) && (nsnull != aDeletedFrame)) {
    // snip

The problem is that the first conditional is true but the second conditional is
false, thus an infinite loop.

Comment 10

16 years ago
Created attachment 61989 [details] [diff] [review]
patch to remove the outer while loop
Confirming, and reassigning. Thanks a lot for the stacktrace and the info, I'll
let people who have a better understanding of layout code comment on the patch.
Assignee: jst → attinasi
Component: DOM Style → Layout
Ever confirmed: true
QA Contact: ian → petersen


16 years ago
Keywords: mozilla0.9.8, mozilla1.0

Comment 12

16 years ago
Comment on attachment 61989 [details] [diff] [review]
patch to remove the outer while loop

sr=waterson. Looks like this kooky code dates back to kipp's era.
Attachment #61989 - Flags: superreview+
Weird.  Doesn't that mean we got to the "found_frame" label without the goto? 
How did that happen?  Maybe there should be an assertion and a |return
NS_ERROR_FAILURE| before that label?  The old code does seem reasonable to me,
except for the lack of an early return in that case.

Comment 14

16 years ago
That's exactly what happens.  I get this on stdout:
###!!! ASSERTION: can't find deleted frame in lines: 'line != line_end', file 
nsBlockFrame.cpp, line 4875
###!!! ASSERTION: bad prevSibling: 'tmp == aDeletedFrame', file 
nsBlockFrame.cpp, line 4879


16 years ago
Keywords: top100
Target Milestone: --- → mozilla0.9.9

Comment 15

16 years ago
I just noticed that it doesn't hang in the 2002012014 build.  However, the page
doesn't render correctly.
Removing hang keyword based on comment #15.
Severity: major → normal
Keywords: hang
Target Milestone: mozilla0.9.9 → mozilla1.1

Comment 17

16 years ago
The page works correctly now.
Last Resolved: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.