Bug 748432

Summary: Firefox 64bit runs in an infinite loop on startup on Fedora 16 Alpha for PPC64
Product: [Fedora] Fedora Reporter: Phil Knirsch <pknirsch>
Component: firefoxAssignee: Gecko Maintainer <gecko-bugs-nobody>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 16CC: gecko-bugs-nobody, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-21 11:27:40 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 718272    
Attachments:
Description Flags
Firefox strace none

Description Phil Knirsch 2011-10-24 08:49:24 EDT
Description of problem:

Firefox 64bit runs in an infinite loop on startup on Fedora 16 Alpha for PPC64 in xulrunner js engine.

Version-Release number of selected component (if applicable):

[root@power02 ~]# rpm -q firefox xulrunner libX11 glibc kernel
firefox-6.0-1.fc16.ppc64
xulrunner-6.0-1.fc16.ppc64
libX11-1.4.3-1.fc16.ppc64
glibc-2.14.90-10.ppc64
glibc-2.14.90-10.ppc
kernel-3.1.0-0.rc8.git0.0.fc16.kh.ppc64


How reproducible:

Always

Steps to Reproduce:
1. Install latest Fedora 16 Alpha for PPC64 from http://ppc.koji.fedoraproject.org/scratch/karsten/iso/
2. Try to run firefox
3. Watch it loop endlessly
  
Actual results:

Firefox doesn't start, no window showing.

Expected results:

Firefox starts without problems.

Additional info:

We've tried various other versions as well, including but not limited to the latest firefox-7, firefox-5 and even older ones. Haven't verified RHEL-6 version yet, but will give that a shot sometime soon.

gdb output:

(gdb) where
#0  JSObject::getGlobal (this=0xfff9ec0b480) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsobj.cpp:6552
#1  0x00000fffa549da60 in js_GetClassPrototype (cx=0xfff9eb10c00, scopeobj=<optimized out>, protoKey=<optimized out>, protop=<optimized out>, clasp=<optimized out>)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsobj.cpp:6180
#2  0x00000fffa5411d18 in FindProto (proto=0xfffc0d14da0, parent=0x0, clasp=0xfffa55e0210, cx=0xfff9eb10c00) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsobjinlines.h:1195
#3  NewObject<false, false> (proto=0x0, kind=<optimized out>, parent=0x0, clasp=0xfffa55e0210, cx=0xfff9eb10c00) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsobjinlines.h:1212
#4  NewNonFunction<(js::WithProto::e)0> (parent=0x0, proto=0x0, clasp=0xfffa55e0210, cx=0xfff9eb10c00) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsobjinlines.h:1287
#5  js::NewSlowEmptyArray (cx=0xfff9eb10c00) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsarray.cpp:3157
#6  0x00000fffa5504fd8 in createResult (matchItemCount=<optimized out>, buf=0xfff9e843028, input=0xfff9e772420, cx=0xfff9eb10c00) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsregexpinlines.h:286
#7  executeInternal (rval=0xfff9ed00290, test=false, lastIndex=read_sleb128: Corrupted DWARF expression.
) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsregexpinlines.h:406
#8  execute (rval=0xfff9ed00290, test=false, lastIndex=read_sleb128: Corrupted DWARF expression.
) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsregexpinlines.h:162
#9  ExecuteRegExp (cx=0xfff9eb10c00, execType=<optimized out>, argc=<optimized out>, vp=0xfff9ed00290) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsregexp.cpp:697
#10 0x00000fffa547cfdc in CallJSNative (vp=<optimized out>, argc=<optimized out>, native=<optimized out>, cx=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jscntxtinlines.h:277
#11 js::Interpret (cx=0xfff9eb10c00, entryFrame=0xfff9ed00170, inlineCallCount=1, interpMode=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:4685
#12 0x00000fffa5481390 in js::RunScript (cx=0xfff9eb10c00, script=<optimized out>, fp=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:613
#13 0x00000fffa54817d8 in js::Invoke (cx=0xfff9eb10c00, argsRef=<optimized out>, option=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:694
#14 0x00000fffa5482370 in js::ExternalInvoke (cx=0xfff9eb10c00, thisv=..., fval=..., argc=<optimized out>, argv=0xfffc0d15a68, rval=0xfffc0d158b8) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:816
#15 0x00000fffa53fb53c in JS_CallFunctionValue (cx=0xfff9eb10c00, obj=<optimized out>, fval=18445495026869045048, argc=<optimized out>, argv=<optimized out>, rval=<optimized out>)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsapi.cpp:5080
#16 0x00000fffa47d39d4 in nsXPCWrappedJSClass::CallMethod (this=0xfffa05c5800, wrapper=<optimized out>, methodIndex=<optimized out>, info=0xfffa0ea9c58, nativeParams=0xfffc0d15c88)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappedjsclass.cpp:1662
#17 0x00000fffa47cda00 in nsXPCWrappedJS::CallMethod (this=0xfffa2d25880, methodIndex=<optimized out>, info=0xfffa0ea9c58, params=0xfffc0d15c88)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappedjs.cpp:586
#18 0x00000fffa4c3c31c in PrepareAndDispatch (self=0xfff9eb224a0, methodIndex=<optimized out>, args=<optimized out>, gprData=0xfffc0d15e48, fprData=0xfffc0d15de0)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp:164
#19 0x00000fffa4c3c570 in .SharedStub () from /usr/lib64/xulrunner-2/libxul.so
#20 0x00000fffa4bf4120 in nsObserverList::NotifyObservers (this=<optimized out>, aSubject=0x0, aTopic=0xfff9eb2ca80 "browser-ui-startup-complete", someData=0xfff9ec00030)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverList.cpp:130
#21 0x00000fffa4bf4664 in NotifyObservers (someData=0xfff9ec00030, aTopic=0xfff9eb2ca80 "browser-ui-startup-complete", aSubject=0x0, this=0xfffa56a7600)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverService.cpp:182
#22 nsObserverService::NotifyObservers (this=0xfffa56a7600, aSubject=0x0, aTopic=0xfff9eb2ca80 "browser-ui-startup-complete", someData=0xfff9ec00030) at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverService.cpp:171
#23 0x00000fffa4c3c4e0 in .NS_InvokeByIndex_P () from /usr/lib64/xulrunner-2/libxul.so
#24 0x00000fffa47d9a20 in Invoke (this=0xfffc0d16200) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappednative.cpp:3141
#25 Call (this=0xfffc0d16200) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappednative.cpp:2407
#26 XPCWrappedNative::CallMethod (ccx=<optimized out>, mode=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappednative.cpp:2371
#27 0x00000fffa47e0144 in XPC_WN_CallMethod (cx=0xfff9eb10c00, argc=<optimized out>, vp=0xfff9ed00120) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1610
#28 0x00000fffa547cfdc in CallJSNative (vp=<optimized out>, argc=<optimized out>, native=<optimized out>, cx=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jscntxtinlines.h:277
#29 js::Interpret (cx=0xfff9eb10c00, entryFrame=0xfff9ed00060, inlineCallCount=1, interpMode=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:4685
#30 0x00000fffa5481390 in js::RunScript (cx=0xfff9eb10c00, script=<optimized out>, fp=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:613
#31 0x00000fffa54817d8 in js::Invoke (cx=0xfff9eb10c00, argsRef=<optimized out>, option=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:694
#32 0x00000fffa5482370 in js::ExternalInvoke (cx=0xfff9eb10c00, thisv=..., fval=..., argc=<optimized out>, argv=0xfffc0d17248, rval=0xfffc0d17098) at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsinterp.cpp:816
#33 0x00000fffa53fb53c in JS_CallFunctionValue (cx=0xfff9eb10c00, obj=<optimized out>, fval=18445495026869172992, argc=<optimized out>, argv=<optimized out>, rval=<optimized out>)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/jsapi.cpp:5080
#34 0x00000fffa47d39d4 in nsXPCWrappedJSClass::CallMethod (this=0xfffa05c5800, wrapper=<optimized out>, methodIndex=<optimized out>, info=0xfffa0ea9c58, nativeParams=0xfffc0d17468)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappedjsclass.cpp:1662
#35 0x00000fffa47cda00 in nsXPCWrappedJS::CallMethod (this=0xfffa2d26f00, methodIndex=<optimized out>, info=0xfffa0ea9c58, params=0xfffc0d17468)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/js/src/xpconnect/src/xpcwrappedjs.cpp:586
#36 0x00000fffa4c3c31c in PrepareAndDispatch (self=0xfff9eb23380, methodIndex=<optimized out>, args=<optimized out>, gprData=0xfffc0d17628, fprData=0xfffc0d175c0)
    at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp:164
#37 0x00000fffa4c3c570 in .SharedStub () from /usr/lib64/xulrunner-2/libxul.so
#38 0x00000fffa4bf4120 in nsObserverList::NotifyObservers (this=<optimized out>, aSubject=0x0, aTopic=0xfffa4d617be "final-ui-startup", someData=0x0) at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverList.cpp:130
#39 0x00000fffa4bf4664 in NotifyObservers (someData=0x0, aTopic=0xfffa4d617be "final-ui-startup", aSubject=0x0, this=0xfffa56a7600) at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverService.cpp:182
#40 nsObserverService::NotifyObservers (this=0xfffa56a7600, aSubject=0x0, aTopic=0xfffa4d617be "final-ui-startup", someData=0x0) at /usr/src/debug/xulrunner-6.0/mozilla-release/xpcom/ds/nsObserverService.cpp:171
#41 0x00000fffa3eeec1c in XRE_main (argc=<optimized out>, argv=<optimized out>, aAppData=<optimized out>) at /usr/src/debug/xulrunner-6.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:3642
#42 0x0000000010002010 in main (argc=1, argv=0xfffc0d1c578) at /usr/src/debug/xulrunner-6.0/mozilla-release/xulrunner/stub/nsXULStub.cpp:496


strace output appended as it's a bit too long to be inserted here directly
Comment 1 Phil Knirsch 2011-10-24 08:50:13 EDT
Created attachment 529860 [details]
Firefox strace
Comment 2 Phil Knirsch 2011-11-10 13:39:46 EST
A few updates with further testing and thanks to some ideas from Martin Stransky:

When building the latest RHEL-6 Firefox-8beta with the associated xulrunner-8beta i'm getting a bit further:

I can now successfully start firefox when i use the -safe-mode option. I get the safe-mode dialog, activate everything in there and then continue and it works like a charm.

I've also had one gdb session where i managed to get it to work without the -safe-mode option, here's what happened:

1) Started firefox in gdb using "gdb firefox"
2) Ran it till it started looping
3) Interrupted it and investigated where the heck it was looping
4) Added and removed a few breakpoints here and there to see where the topmost stackframe was which started looping (aka, where the breakpoint wouldn't be reached anymore)
5) GDB barfed a bit about something, but i told it to continue
6) I then suddenly got a message like:
  "Lost DBus connection"
7) It then suddenly worked

I hope this gives a bit more information as to where the problem might be coming from.

Thanks & regards, Phil
Comment 3 Phil Knirsch 2011-11-21 11:27:40 EST
Tested the latest rawhide version and that works like a charm.

We'll be using that for our Fedora 16 release then for Power. Closing this out as RAWHIDE.

Thanks again Martin for all the help!

Regards, Phil