Last Comment Bug 795484 - [Desktop Build]B2G Desktop crashes on startup in nsBlockFrame::SetInitialChildList
: [Desktop Build]B2G Desktop crashes on startup in nsBlockFrame::SetInitialChil...
Status: RESOLVED FIXED
[startupcrash][b2g-desktop-build]b2g-...
: crash, reproducible
Product: Core
Classification: Components
Component: Layout (show other bugs)
: unspecified
: x86_64 Windows 7
: -- critical with 1 vote (vote)
: ---
Assigned To: Josh Matthews [:jdm]
:
Mentors:
: 803962 (view as bug list)
Depends on: 807760
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-28 14:54 PDT by Myk Melez [:myk] [@mykmelez]
Modified: 2013-01-14 11:21 PST (History)
36 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
-


Attachments
mozconfig for building B2G Desktop (909 bytes, text/plain)
2012-10-08 15:40 PDT, Myk Melez [:myk] [@mykmelez]
no flags Details

Description Myk Melez [:myk] [@mykmelez] 2012-09-28 14:54:34 PDT
bsmedberg's fix for the Windows-specific B2G Desktop startup crash bug 794662 exposed another Windows-specific crash on B2G Desktop startup, this one in nsBlockFrame::SetInitialChildList.

Here's an uninformative crash report (symbols unavailable due to bug 785698):

https://crash-stats.mozilla.com/report/index/359245af-0c15-4b2c-83af-2541e2120928

And here's a stack from my local build:

 Index  Function
--------------------------------------------------------------------------------
 1      KernelBase.dll!_DebugBreak@0() 
*2      xul.dll!RealBreak() 
 3      xul.dll!Break(const char * aMsg=0x00368b10) 
 4      xul.dll!NS_DebugBreak_P(unsigned int aSeverity=1, const char * aStr=0x11806f3c, const char * aExpr=0x11806f70, const char * aFile=0x11806efc, int aLine=6571) 
 5      xul.dll!nsBlockFrame::SetInitialChildList(mozilla::layout::FrameChildListID aListID=kPrincipalList, nsFrameList & aChildList={...}) 
 6      xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e2e8800, nsFrameItems & aFrameItems={...}) 
 7      xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e2e8800, nsFrameItems & aFrameItems={...}) 
 8      xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e2e8800, nsFrameItems & aFrameItems={...}) 
 9      xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e69bc40, nsStyleContext * aStyleContext=0x0e2e85c0, nsIFrame * aFrame=0x0e2e8800, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e2e8800) 
 10     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0e2e8618, nsIContent * aContent=0x0e69bc40, nsIFrame * aParentFrame=0x0e2e8428, nsIFrame * aContentParentFrame=0x0e2e8428, nsStyleContext * aStyleContext=0x0e2e85c0, nsIFrame * * aNewFrame=0x00369448, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=true, PendingBinding * aPendingBinding=0x00000000) 
 11     xul.dll!nsCSSFrameConstructor::ConstructNonScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e2e8428, const nsStyleDisplay * aDisplay=0x0e2e8618, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x00369448) 
 12     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e2e8428, nsFrameItems & aFrameItems={...}) 
 13     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e2e8428, nsFrameItems & aFrameItems={...}) 
 14     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e2e8428, nsFrameItems & aFrameItems={...}) 
 15     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e69bba0, nsStyleContext * aStyleContext=0x0e2e80f0, nsIFrame * aFrame=0x0e2e8428, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e2e8428) 
 16     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0e2e8148, nsIContent * aContent=0x0e69bba0, nsIFrame * aParentFrame=0x0e2e7fc8, nsIFrame * aContentParentFrame=0x0e2e7fc8, nsStyleContext * aStyleContext=0x0e2e80f0, nsIFrame * * aNewFrame=0x003697ec, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=true, PendingBinding * aPendingBinding=0x00000000) 
 17     xul.dll!nsCSSFrameConstructor::ConstructNonScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e2e7fc8, const nsStyleDisplay * aDisplay=0x0e2e8148, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x003697ec) 
 18     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e2e7fc8, nsFrameItems & aFrameItems={...}) 
 19     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e2e7fc8, nsFrameItems & aFrameItems={...}) 
 20     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e2e7fc8, nsFrameItems & aFrameItems={...}) 
 21     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e69bb00, nsStyleContext * aStyleContext=0x0e2e7bb8, nsIFrame * aFrame=0x0e2e7fc8, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e2e7fc8) 
 22     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0e2e7c10, nsIContent * aContent=0x0e69bb00, nsIFrame * aParentFrame=0x0e2e7ae8, nsIFrame * aContentParentFrame=0x0e2e7ae8, nsStyleContext * aStyleContext=0x0e2e7bb8, nsIFrame * * aNewFrame=0x00369b90, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=true, PendingBinding * aPendingBinding=0x00000000) 
 23     xul.dll!nsCSSFrameConstructor::ConstructNonScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e2e7ae8, const nsStyleDisplay * aDisplay=0x0e2e7c10, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x00369b90) 
 24     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e2e7ae8, nsFrameItems & aFrameItems={...}) 
 25     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e2e7ae8, nsFrameItems & aFrameItems={...}) 
 26     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e2e7ae8, nsFrameItems & aFrameItems={...}) 
 27     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e69ba60, nsStyleContext * aStyleContext=0x0e292638, nsIFrame * aFrame=0x0e2e7ae8, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e2e7ae8) 
 28     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0e292690, nsIContent * aContent=0x0e69ba60, nsIFrame * aParentFrame=0x0e291da0, nsIFrame * aContentParentFrame=0x0e291da0, nsStyleContext * aStyleContext=0x0e292638, nsIFrame * * aNewFrame=0x00369f34, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=true, PendingBinding * aPendingBinding=0x00000000) 
 29     xul.dll!nsCSSFrameConstructor::ConstructNonScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e291da0, const nsStyleDisplay * aDisplay=0x0e292690, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x00369f34) 
 30     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e291da0, nsFrameItems & aFrameItems={...}) 
 31     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e291da0, nsFrameItems & aFrameItems={...}) 
 32     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e291da0, nsFrameItems & aFrameItems={...}) 
 33     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e698290, nsStyleContext * aStyleContext=0x0e291ba8, nsIFrame * aFrame=0x0e291da0, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e291da0) 
 34     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0e291c70, nsIContent * aContent=0x0e698290, nsIFrame * aParentFrame=0x0e291aa0, nsIFrame * aContentParentFrame=0x0e291aa0, nsStyleContext * aStyleContext=0x0e291ba8, nsIFrame * * aNewFrame=0x0036a1f0, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=true, PendingBinding * aPendingBinding=0x00000000) 
 35     xul.dll!nsCSSFrameConstructor::ConstructScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e291868, const nsStyleDisplay * aDisplay=0x0e2918f0, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x0036a2f8) 
 36     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e291868, nsFrameItems & aFrameItems={...}) 
 37     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e291868, nsFrameItems & aFrameItems={...}) 
 38     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e291868, nsFrameItems & aFrameItems={...}) 
 39     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e6981f0, nsStyleContext * aStyleContext=0x0e291720, nsIFrame * aFrame=0x0e291868, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e291868) 
 40     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0d834928, nsIContent * aContent=0x0e6981f0, nsIFrame * aParentFrame=0x0e291340, nsIFrame * aContentParentFrame=0x0e291340, nsStyleContext * aStyleContext=0x0e291720, nsIFrame * * aNewFrame=0x0036a69c, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=false, PendingBinding * aPendingBinding=0x00000000) 
 41     xul.dll!nsCSSFrameConstructor::ConstructNonScrollableBlock(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsIFrame * aParentFrame=0x0e291340, const nsStyleDisplay * aDisplay=0x0d834928, nsFrameItems & aFrameItems={...}, nsIFrame * * aNewFrame=0x0036a69c) 
 42     xul.dll!nsCSSFrameConstructor::ConstructFrameFromItemInternal(nsCSSFrameConstructor::FrameConstructionItem & aItem={...}, nsFrameConstructorState & aState={...}, nsIFrame * aParentFrame=0x0e291340, nsFrameItems & aFrameItems={...}) 
 43     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItem(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList::Iterator & aIter={...}, nsIFrame * aParentFrame=0x0e291340, nsFrameItems & aFrameItems={...}) 
 44     xul.dll!nsCSSFrameConstructor::ConstructFramesFromItemList(nsFrameConstructorState & aState={...}, nsCSSFrameConstructor::FrameConstructionItemList & aItems={...}, nsIFrame * aParentFrame=0x0e291340, nsFrameItems & aFrameItems={...}) 
 45     xul.dll!nsCSSFrameConstructor::ProcessChildren(nsFrameConstructorState & aState={...}, nsIContent * aContent=0x0e677820, nsStyleContext * aStyleContext=0x0e2912d8, nsIFrame * aFrame=0x0e291340, const bool aCanHaveGeneratedContent=true, nsFrameItems & aFrameItems={...}, const bool aAllowBlockStyles=true, PendingBinding * aPendingBinding=0x00000000, nsIFrame * aPossiblyLeafFrame=0x0e291340) 
 46     xul.dll!nsCSSFrameConstructor::ConstructBlock(nsFrameConstructorState & aState={...}, const nsStyleDisplay * aDisplay=0x0d834718, nsIContent * aContent=0x0e677820, nsIFrame * aParentFrame=0x0d834a58, nsIFrame * aContentParentFrame=0x0d834a58, nsStyleContext * aStyleContext=0x0e2912d8, nsIFrame * * aNewFrame=0x0036ac80, nsFrameItems & aFrameItems={...}, bool aAbsPosContainer=false, PendingBinding * aPendingBinding=0x00000000) 
 47     xul.dll!nsCSSFrameConstructor::ConstructDocElementFrame(mozilla::dom::Element * aDocElement=0x0e677820, nsILayoutHistoryState * aFrameState=0x00000000, nsIFrame * * aNewFrame=0x0036ad60) 
 48     xul.dll!nsCSSFrameConstructor::ContentRangeInserted(nsIContent * aContainer=0x00000000, nsIContent * aStartChild=0x0e677820, nsIContent * aEndChild=0x00000000, nsILayoutHistoryState * aFrameState=0x00000000, bool aAllowLazyConstruction=false) 
 49     xul.dll!nsCSSFrameConstructor::ContentInserted(nsIContent * aContainer=0x00000000, nsIContent * aChild=0x0e677820, nsILayoutHistoryState * aFrameState=0x00000000, bool aAllowLazyConstruction=false) 
 50     xul.dll!PresShell::Initialize(int aWidth=19200, int aHeight=28800) 
 51     xul.dll!nsContentSink::StartLayout(bool aIgnorePendingSheets=true) 
 52     xul.dll!nsHtml5TreeOpExecutor::FlushPendingNotifications(mozFlushType aType=Flush_Layout) 
 53     xul.dll!nsDocument::FlushPendingNotifications(mozFlushType aType=Flush_Layout) 
 54     xul.dll!nsDocument::FlushPendingNotifications(mozFlushType aType=Flush_Style) 
 55     xul.dll!nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout=true) 
 56     xul.dll!nsDocLoader::OnStopRequest(nsIRequest * aRequest=0x0e439ed0, nsISupports * aCtxt=0x00000000, tag_nsresult aStatus=-2142568446) 
 57     xul.dll!nsLoadGroup::RemoveRequest(nsIRequest * request=0x0e439ed0, nsISupports * ctxt=0x00000000, tag_nsresult aStatus=-2142568446) 
 58     xul.dll!nsLoadGroup::Cancel(tag_nsresult status=-2142568446) 
 59     xul.dll!nsDocLoader::Stop() 
 60     xul.dll!nsDocShell::Stop() 
 61     xul.dll!nsDocShell::Stop(unsigned int aStopFlags=1) 
 62     xul.dll!nsDocShell::InternalLoad(nsIURI * aURI=0x0e4cc900, nsIURI * aReferrer=0x0d666840, nsISupports * aOwner=0x0d816240, unsigned int aFlags=0, const wchar_t * aWindowTarget=0x023f116e, const char * aTypeHint=0x00000000, nsIInputStream * aPostData=0x00000000, nsIInputStream * aHeadersData=0x00000000, unsigned int aLoadType=1, nsISHEntry * aSHEntry=0x00000000, bool aFirstParty=false, nsIDocShell * * aDocShell=0x00000000, nsIRequest * * aRequest=0x00000000) 
 63     xul.dll!nsDocShell::LoadURI(nsIURI * aURI=0x0e4cc900, nsIDocShellLoadInfo * aLoadInfo=0x0e4d05c0, unsigned int aLoadFlags=0, bool aFirstParty=false) 
 64     xul.dll!nsFrameLoader::ReallyStartLoadingInternal() 
 65     xul.dll!nsFrameLoader::ReallyStartLoading() 
 66     xul.dll!nsDocument::MaybeInitializeFinalizeFrameLoaders() 
 67     xul.dll!nsRunnableMethodImpl<void (__thiscall nsDocument::*)(void),1>::Run() 
 68     xul.dll!nsContentUtils::AddScriptRunner(nsIRunnable * aRunnable=0x0d83d160) 
 69     xul.dll!nsDocument::InitializeFrameLoader(nsFrameLoader * aLoader=0x0e7631f0) 
 70     xul.dll!nsFrameLoader::LoadURI(nsIURI * aURI=0x0e4cc900) 
 71     xul.dll!nsFrameLoader::LoadFrame() 
 72     xul.dll!nsGenericHTMLFrameElement::LoadSrc() 
 73     xul.dll!nsGenericHTMLFrameElement::SetAttr(int aNameSpaceID=0, nsIAtom * aName=0x071246a0, nsIAtom * aPrefix=0x00000000, const nsAString_internal & aValue={...}, bool aNotify=true) 
 74     xul.dll!nsGenericHTMLElement::SetAttr(int aNameSpaceID=0, nsIAtom * aName=0x071246a0, const nsAString_internal & aValue={...}, bool aNotify=true) 
 75     xul.dll!nsGenericHTMLElement::SetAttrHelper(nsIAtom * aAttr=0x071246a0, const nsAString_internal & aValue={...}) 
 76     xul.dll!nsHTMLIFrameElement::SetSrc(const nsAString_internal & aValue={...}) 
 77     xul.dll!nsIDOMHTMLIFrameElement_SetSrc(JSContext * cx=0x0d6af3a0, JS::Handle<JSObject *> obj={...}, JS::Handle<jsid> id={...}, int strict=1, JS::MutableHandle<JS::Value> vp_={...}) 
 78     mozjs.dll!js::CallJSPropertyOpSetter(JSContext * cx=0x0d6af3a0, int (JSContext *, JS::Handle<JSObject *>, JS::Handle<jsid>, int, JS::MutableHandle<JS::Value>)* op=0x1074fd80, JS::Handle<JSObject *> obj={...}, JS::Handle<jsid> id={...}, int strict=1, JS::MutableHandle<JS::Value> vp={...}) 
 79     mozjs.dll!js::Shape::set(JSContext * cx=0x0d6af3a0, JS::Handle<JSObject *> obj={...}, JS::Handle<JSObject *> receiver={...}, bool strict=true, JS::MutableHandle<JS::Value> vp={...}) 
 80     mozjs.dll!js::baseops::SetPropertyHelper(JSContext * cx=0x0d6af3a0, JS::Handle<JSObject *> obj={...}, JS::Handle<JSObject *> receiver={...}, JS::Handle<jsid> id={...}, unsigned int defineHow=1, JS::MutableHandle<JS::Value> vp={...}, int strict=1) 
 81     mozjs.dll!js::SetPropertyOperation(JSContext * cx=0x0d6af3a0, unsigned char * pc=0x0e67d5ac, JS::Handle<JS::Value> lval={...}, JS::Handle<JS::Value> rval={...}) 
 82     mozjs.dll!js::Interpret(JSContext * cx=0x0d6af3a0, js::StackFrame * entryFrame=0x07980020, js::InterpMode interpMode=JSINTERP_NORMAL) 
 83     mozjs.dll!js::RunScript(JSContext * cx=0x0d6af3a0, JS::Handle<JSScript *> script={...}, js::StackFrame * fp=0x07980020) 
 84     mozjs.dll!js::ExecuteKernel(JSContext * cx=0x0d6af3a0, JS::Handle<JSScript *> script={...}, JSObject & scopeChain={...}, const JS::Value & thisv={...}, js::ExecuteType type=EXECUTE_GLOBAL, js::StackFrame * evalInFrame=0x00000000, JS::Value * result=0x00000000) 
 85     mozjs.dll!js::Execute(JSContext * cx=0x0d6af3a0, JS::Handle<JSScript *> script={...}, JSObject & scopeChainArg={...}, JS::Value * rval=0x00000000) 
 86     mozjs.dll!JS::Evaluate(JSContext * cx=0x0d6af3a0, JS::Handle<JSObject *> obj={...}, JS::CompileOptions options={...}, const wchar_t * chars=0x0e4d8008, unsigned int length=2179, JS::Value * rval=0x00000000) 
 87     xul.dll!nsJSContext::EvaluateString(const nsAString_internal & aScript={...}, JSObject * aScopeObject=0x0842e040, nsIPrincipal * aPrincipal=0x0d816240, nsIPrincipal * aOriginPrincipal=0x0e4f4a00, const char * aURL=0x0e5420c8, unsigned int aLineNo=1, JSVersion aVersion=JSVERSION_DEFAULT, nsAString_internal * aRetValue=0x00000000, bool * aIsUndefined=0x0036d0f7) 
 88     xul.dll!nsScriptLoader::EvaluateScript(nsScriptLoadRequest * aRequest=0x0e542100, const nsString & aScript={...}) 
 89     xul.dll!nsScriptLoader::ProcessRequest(nsScriptLoadRequest * aRequest=0x0e542100) 
 90     xul.dll!nsScriptLoader::ProcessPendingRequests() 
 91     xul.dll!nsScriptLoader::OnStreamComplete(nsIStreamLoader * aLoader=0x0e5c6610, nsISupports * aContext=0x0e593980, tag_nsresult aStatus=-2142109678, unsigned int aStringLen=0, const unsigned char * aString=0x00000000) 
 92     xul.dll!nsStreamLoader::OnStopRequest(nsIRequest * request=0x0e5af4a0, nsISupports * ctxt=0x0e593980, tag_nsresult aStatus=-2142109678) 
 93     xul.dll!nsJARChannel::OnStopRequest(nsIRequest * req=0x0e58f460, nsISupports * ctx=0x00000000, tag_nsresult status=-2142109678) 
 94     xul.dll!nsInputStreamPump::OnStateStop() 
 95     xul.dll!nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream * stream=0x0e439300) 
 96     xul.dll!nsInputStreamReadyEvent::Run() 
 97     xul.dll!nsThread::ProcessNextEvent(bool mayWait=false, bool * result=0x0036d387) 
 98     xul.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x0231f160, bool mayWait=false) 
 99     xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate * aDelegate=0x023380c0) 
 100    xul.dll!MessageLoop::RunInternal() 
 101    xul.dll!MessageLoop::RunHandler() 
 102    xul.dll!MessageLoop::Run() 
 103    xul.dll!nsBaseAppShell::Run() 
 104    xul.dll!nsAppShell::Run() 
 105    xul.dll!nsAppStartup::Run() 
 106    xul.dll!XREMain::XRE_mainRun() 
 107    xul.dll!XREMain::XRE_main(int argc=3, char * * argv=0x01e97cc0, const nsXREAppData * aAppData=0x001cc7e4) 
 108    xul.dll!XRE_main(int argc=3, char * * argv=0x01e97cc0, const nsXREAppData * aAppData=0x001cc7e4, unsigned int aFlags=0) 
 109    b2g.exe!do_main(int argc=3, char * * argv=0x01e97cc0) 
 110    b2g.exe!NS_internal_main(int argc=3, char * * argv=0x01e97cc0) 
 111    b2g.exe!wmain(int argc=3, wchar_t * * argv=0x01e91ad0) 
 112    b2g.exe!__tmainCRTStartup() 
 113    b2g.exe!wmainCRTStartup() 
 114    kernel32.dll!@BaseThreadInitThunk@12() 
 115    ntdll.dll!___RtlUserThreadStart@8() 
 116    ntdll.dll!__RtlUserThreadStart@8()
Comment 1 Jeff Griffiths (:canuckistani) (:⚡︎) 2012-10-01 14:20:22 PDT
Myk: just for clarification, does this crash block all use of B2G desktop builds on Windows?
Comment 2 Jeff Griffiths (:canuckistani) (:⚡︎) 2012-10-01 14:22:07 PDT
cc'ing Dietrich - this bug is concerning if we can't run the simulator on Windows - the simulator is in my mind a great tool for us in getting developers interested in app development targeting Gaia. If Windows doesn't work, this bug should be higher priority.
Comment 3 Dietrich Ayala (:dietrich) 2012-10-01 14:57:34 PDT
Jonas, JST - do you know who the right person is to look into this startup crash?
Comment 4 Myk Melez [:myk] [@mykmelez] 2012-10-01 15:12:29 PDT
(In reply to Jeff Griffiths (:canuckistani) from comment #1)
> Myk: just for clarification, does this crash block all use of B2G desktop
> builds on Windows?

Yes, this happens consistently on startup, so it prevents you from doing anything with B2G Desktop on Windows.
Comment 5 Johnny Stenback (:jst, jst@mozilla.com) 2012-10-02 14:08:17 PDT
Not sure who the best person is, but jet should know. And this one's important, not being able to run these builds on windows at all hinders anyone from testing anything on windows. Jet, can you make sure someone looks into this please?
Comment 6 Myk Melez [:myk] [@mykmelez] 2012-10-05 12:28:38 PDT
Nominating to block Basecamp, as not having working B2G Desktop builds on Windows makes it hard for us to get the many app developers on Windows to build apps for the initial release of Firefox OS.
Comment 7 Jason Smith [:jsmith] 2012-10-05 12:35:09 PDT
(In reply to Myk Melez [:myk] [@mykmelez] from comment #6)
> Nominating to block Basecamp, as not having working B2G Desktop builds on
> Windows makes it hard for us to get the many app developers on Windows to
> build apps for the initial release of Firefox OS.

Does this generally apply to all cases of b2g desktop builds on windows or only builds generated from your add-on?

If it's a general case, talking with Marshall, many Gaia devs rely on desktop builds for development, so if its a development blocker, then we might have to block. But if it isn't a development blocker, then this doesn't block ship.
Comment 8 Myk Melez [:myk] [@mykmelez] 2012-10-05 12:38:18 PDT
(In reply to Jason Smith [:jsmith] from comment #7)
> Does this generally apply to all cases of b2g desktop builds on windows or
> only builds generated from your add-on?

The addon uses standard B2G Desktop nightly builds from ftp.mozilla.org, and this applies to those standard builds, whether or not they are being used in the context of the addon.  So this is unrelated to the addon.
Comment 9 Jet Villegas (:jet) 2012-10-06 12:31:35 PDT
Myk: what is the HTML/CSS getting loaded at the time of the crash? I wouldn't expect a Windows-only crasher in this code, and isolating the CSS file may help here.
Comment 10 Jonas Sicking (:sicking) PTO Until July 5th 2012-10-08 10:43:24 PDT
This doesn't really affect our codefreeze date, so not marking as a blocker. But we do want it fixed before we ship, so however we track that we should track this one.
Comment 11 Myk Melez [:myk] [@mykmelez] 2012-10-08 15:40:21 PDT
Created attachment 669317 [details]
mozconfig for building B2G Desktop

(In reply to Jet Villegas (:jet) from comment #9)
> Myk: what is the HTML/CSS getting loaded at the time of the crash? I
> wouldn't expect a Windows-only crasher in this code, and isolating the CSS
> file may help here.

At nsDocLoader::OnStopRequest, aRequest::mOriginalURI is app://system.gaiamobile.org/index.html; and further up the stack, in nsContentSink::StartLayout, this::mDocumentURI is the same URL; so that's presumably the HTML file being laid out:

    https://github.com/mozilla-b2g/gaia/blob/master/apps/system/index.html

That file is large and complicated, however, with many stylesheets and a lot of HTML content; and it isn't clear to me what is being processed at the time of the crash.  I expect that a layout hacker more familiar with this code path would have an easier time of it.

And since the crash is consistent--it happens on every startup--it's trivial to reproduce.  One just has to build B2G Desktop and point it at a Gaia profile.

The easiest way to get a Gaia profile is to download a nightly build of B2G Desktop, which contains a profile at b2g/gaia/profile/:

https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/b2g-18.0a1.en-US.win32.zip

(The second-easiest way is also pretty easy, it just takes time and disk space: git clone https://github.com/mozilla-b2g/gaia/ && cd gaia && make; .)

Unfortunately, symbols aren't available for the B2G Desktop nightly builds, per bug 785698, so you have to roll your own build, which I do with the attached mozconfig (based on the mozconfig that the nightly builds use).
Comment 12 Gabriela [:gaby2300] 2012-10-10 14:00:21 PDT
It's crashing every time for me using Windows 7 64-bit. I hope this gets fixed soon!
Comment 13 Wladimir Palant 2012-10-11 04:29:18 PDT
(In reply to Myk Melez [:myk] [@mykmelez] from comment #11)
>     https://github.com/mozilla-b2g/gaia/blob/master/apps/system/index.html
> 
> That file is large and complicated, however, with many stylesheets and a lot
> of HTML content; and it isn't clear to me what is being processed at the
> time of the crash.

I tried removing all the stylesheets from that file and the crash still happened. What helped was removing the following line:

    <script defer src="js/window_manager.js"></script>

The file in question is https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/window_manager.js - from what I can tell it only manipulates inline styles and class names. I will see whether I can narrow it down further.
Comment 14 Wladimir Palant 2012-10-11 04:49:33 PDT
Looking further, the crash is caused by the code handling mozChromeEvent event, particularly the "open-app" case. It starts the homescreen app by adding a frame to the document. The important part here turned out to be the remote="true" attribute on the frame, if that attribute isn't set the crash doesn't happen (frame contents don't matter, I tried loading an empty page as well). Not sure how CSS got involved here, I didn't find any CSS code actually referring to this attribute - I suspect that the CSS code being processed here is simply html.css.
Comment 15 Dietrich Ayala (:dietrich) 2012-10-11 09:59:01 PDT
Cjones says there's a build-time flag to force everything in-process. Which isn't ideal, but if nobody can fix the crash, it's preferable to having zero Windows users able to run and test B2G at all.

cc jhford who's familiar w/ Desktop build configs.
Comment 16 Jet Villegas (:jet) 2012-10-11 13:54:12 PDT
debug.oop.disabled is the pref to set to disable OOP. That should get testers past this crash for now without a rebuild. It seems like the CSS crash is random memory stompage in this case.
Comment 17 Wladimir Palant 2012-10-12 04:25:55 PDT
(In reply to Jet Villegas (:jet) from comment #16)
> debug.oop.disabled is the pref to set to disable OOP. That should get
> testers past this crash for now without a rebuild.

How do you set that pref if the application doesn't run? It is set on navigator.mozSettings and is stored in an sqlite database from what I can tell.
Comment 18 John Ford [:jhford] 2012-10-12 11:02:41 PDT
You could add it to the user.js file in your profile, I beleive
Comment 19 Wladimir Palant 2012-10-12 11:08:58 PDT
As I said, this isn't a regular preference so neither prefs.js nor user.js will help. And locating/manipulating an sqlite database is unfortunately non-trivial.
Comment 20 John Ford [:jhford] 2012-10-12 11:44:40 PDT
I unzipped the window_manager.js file and changed "var isOutOfProcessDisabled = false;" to "var isOutOfProcessDisabled = true;" and commented out the code that changes the value.  This let my previously crashing version of B2G start up and run.
Comment 21 Gabriela [:gaby2300] 2012-10-12 12:47:34 PDT
John, could you please tell me where can I find the window_manager.js file? And how to proceed step by step afterwardsI would really appreciate it!
Comment 22 slavi 2012-10-13 13:17:37 PDT
The window_manager.js file is located at:
gaia\profile\webapps\system.gaiamobile.org\application.zip\js\
Here's the code after the change
var isOutOfProcessDisabled = true;
  /*SettingsListener.observe('debug.oop.disabled', false, function(value) {
    isOutOfProcessDisabled = value;
  });*/
I also had to disable the lock screen in lockscreen.js because it was unresponsive
enabled: false
Comment 23 Gabriela [:gaby2300] 2012-10-13 14:02:53 PDT
Slavi, many thanks! Regretfully I can't find the file. In the system folder I only have 2 files: manifest.json and manifest.webapp.

I would really appreciate some further help!
Comment 24 rospkos.07 2012-10-15 22:03:06 PDT
@Slavi

Even ur tip is not helping me here. still crash is recurring. WHile i read the code in window_manager.js There are many palce where typos occurs, i.e., === instead of == and !== instead of != .
Comment 25 Jeff Griffiths (:canuckistani) (:⚡︎) 2012-10-16 09:57:19 PDT
But, '===' is valid code. It's just pickier.
Comment 26 rospkos.07 2012-10-17 11:27:08 PDT
After the B2G-desktop crashed, i restarted thru crash-reporter.There it load a cmd, displayed output "forms.js loaded"

The crash occurred along with the message "Got a MozContentEvent:activity-choice"

Could u tell me where forms.js is?

Also the b2g-desktop installer from sihorton's git repository worked well in windows desktop.
Comment 27 Jason Smith [:jsmith] 2012-10-21 08:04:08 PDT
*** Bug 803962 has been marked as a duplicate of this bug. ***
Comment 28 Jet Villegas (:jet) 2012-10-22 14:36:58 PDT
Putting this back on the basecamp? triage list. This was assigned to me when it was suspected to be a Layout & Rendering crasher. The latest diagnosis indicate it's actually a e10s bug on Windows.
Comment 29 Andrew Overholt [:overholt] 2012-10-23 11:23:18 PDT
jdm, do you have time to help us diagnose this e10s-related issue?  We'd like to know whether or not we should block B2G v1 on fixing it.
Comment 30 Josh Matthews [:jdm] 2012-10-23 12:05:40 PDT
I'll need to put together a windows dev environment, but it should be doable.
Comment 31 Andrew Overholt [:overholt] 2012-10-23 12:57:42 PDT
Alternatively, Jet could put you in touch with someone on the Layout team who already has a Windows environment.
Comment 32 Alexandre Poirot [:ochameau] PTO, back on 1st 2012-10-25 12:08:09 PDT
Added a note on:
https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client
Would be worth removing it when being fixed.
Comment 33 Josh Matthews [:jdm] 2012-10-28 13:54:39 PDT
I suspect that the stack trace originally reported by Myk is a red herring - that's an assertion present in debug builds, and while annoying on Windows (since it pops up a dialog box), it's ignorable. I'm fixing the actual crashes I saw in bug 806231, so we can see how usable desktop builds are once the patch there lands.
Comment 34 Josh Matthews [:jdm] 2012-11-01 13:27:41 PDT
Marking the two bugs I believe to be at fault here.
Comment 35 Myk Melez [:myk] [@mykmelez] 2012-11-01 14:41:27 PDT
Setting *debug.oop.disabled* to true does work around the crash, in my testing, and you can set it by modifying the settings.json file in your profile *before the first time you run B2G with that profile* (afterwards, the change has no effect, presumably because the setting gets written to another file on firstrun, and that other file is consulted on subsequent runs).
Comment 36 Ken Saunders 2012-11-01 18:17:53 PDT
(In reply to Myk Melez [:myk] [@mykmelez] from comment #35)
> Setting *debug.oop.disabled* to true does work around the crash

It does for me as well, but I just get a blank screen
Comment 37 Ahmed Nefzaoui [:Nefzaoui] 2012-11-04 03:07:22 PST
(In reply to Myk Melez [:myk] [@mykmelez] from comment #35)
> Setting *debug.oop.disabled* to true does work around the crash, in my
> testing, and you can set it by modifying the settings.json file in your
> profile *before the first time you run B2G with that profile* (afterwards,
> the change has no effect, presumably because the setting gets written to
> another file on firstrun, and that other file is consulted on subsequent
> runs).

It does work for me, but the thing is, browser still crashes
Comment 38 Myk Melez [:myk] [@mykmelez] 2012-11-05 15:14:35 PST
Requesting retriage of this bug's blocking-basecamp status.  Since this bug was marked blocking+, bug 806231 and bug 807735, which similarly prevent all use of B2G Desktop on Windows, have been marked blocking-.  If those two bugs don't block, then this one shouldn't either.  Alternately, if this bug blocks, then those two should too.
Comment 39 Doug Turner (:dougt) 2012-11-07 09:11:24 PST
We'd love to see this fixed, but will not block v.1.  Please request patch approval instead.
Comment 40 hyuval1511 2012-11-14 07:49:30 PST
When it amended the hell
Comment 41 David Weir (satdav) 2012-12-06 11:20:47 PST
when is this getting fixed if possible
Comment 42 Myk Melez [:myk] [@mykmelez] 2012-12-07 17:19:23 PST
This seems to be fixed, as bug 806231 doesn't appear to cause the problem, and the Windows builds no longer crash on startup now that bug 807760 has been fixed.

Note that they still don't start up properly, but that's because of bug 819597, which is a different bug.

Thus resolving this bug fixed.
Comment 43 Ahmed Nefzaoui [:Nefzaoui] 2013-01-14 11:09:31 PST
I hate to say this.. But at this very critic time, the desktop builds on Windows aren't working, nothing but a black screen for two seconds then the build windows shuts it self down.. Using an old profile with the build perfectly works, I don't know if this needs to file a new bug or re investigate under this one..
Comment 44 Ted Mielczarek [:ted.mielczarek] 2013-01-14 11:21:06 PST
This bug is fixed, so you should file a new bug with the issue you're experiencing.

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