Bug 748432 - Firefox 64bit runs in an infinite loop on startup on Fedora 16 Alpha for PPC64
Summary: Firefox 64bit runs in an infinite loop on startup on Fedora 16 Alpha for PPC64
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: firefox
Version: 16
Hardware: ppc64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Gecko Maintainer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F16Betappc
TreeView+ depends on / blocked
 
Reported: 2011-10-24 12:49 UTC by Phil Knirsch
Modified: 2015-03-05 01:21 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-21 16:27:40 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Firefox strace (1.74 MB, text/plain)
2011-10-24 12:50 UTC, Phil Knirsch
no flags Details

Description Phil Knirsch 2011-10-24 12:49:24 UTC
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 12:50:13 UTC
Created attachment 529860 [details]
Firefox strace

Comment 2 Phil Knirsch 2011-11-10 18:39:46 UTC
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 16:27:40 UTC
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


Note You need to log in before you can comment on or make changes to this bug.