Closed Bug 795484 Opened 12 years ago Closed 11 years ago

[Desktop Build]B2G Desktop crashes on startup in nsBlockFrame::SetInitialChildList

Categories

(Core :: Layout, defect)

x86_64
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED FIXED
blocking-basecamp -

People

(Reporter: myk, Assigned: jdm)

References

Details

(Keywords: crash, reproducible, Whiteboard: [startupcrash][b2g-desktop-build]b2g-desktop-builds [soft][b2g-crash])

Attachments

(1 file)

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()
Myk: just for clarification, does this crash block all use of B2G desktop builds on Windows?
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.
Jonas, JST - do you know who the right person is to look into this startup crash?
(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.
Severity: normal → critical
Keywords: crash, reproducible
Whiteboard: [startupcrash]
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?
Assignee: nobody → bugs
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.
blocking-basecamp: --- → ?
(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.
(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.
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.
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.
blocking-basecamp: ? → -
Whiteboard: [startupcrash] → [startupcrash][b2g-desktop-build]
(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).
It's crashing every time for me using Windows 7 64-bit. I hope this gets fixed soon!
(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.
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.
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.
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.
(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.
You could add it to the user.js file in your profile, I beleive
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.
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.
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!
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
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!
@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 != .
But, '===' is valid code. It's just pickier.
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.
Summary: B2G Desktop crashes on startup in nsBlockFrame::SetInitialChildList → [Desktop Build]B2G Desktop crashes on startup in nsBlockFrame::SetInitialChildList
Whiteboard: [startupcrash][b2g-desktop-build] → [startupcrash][b2g-desktop-build]b2g-desktop-builds
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.
Assignee: bugs → nobody
blocking-basecamp: - → ?
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.
Assignee: nobody → josh
I'll need to put together a windows dev environment, but it should be doable.
Alternatively, Jet could put you in touch with someone on the Layout team who already has a Windows environment.
blocking-basecamp: ? → +
Whiteboard: [startupcrash][b2g-desktop-build]b2g-desktop-builds → [startupcrash][b2g-desktop-build]b2g-desktop-builds [soft]
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.
Marking the two bugs I believe to be at fault here.
Depends on: 806231, 807760
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).
(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
(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
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.
blocking-basecamp: + → ?
We'd love to see this fixed, but will not block v.1.  Please request patch approval instead.
blocking-basecamp: ? → -
Whiteboard: [startupcrash][b2g-desktop-build]b2g-desktop-builds [soft] → [startupcrash][b2g-desktop-build]b2g-desktop-builds [soft][b2g-crash]
When it amended the hell
when is this getting fixed if possible
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.
Status: NEW → RESOLVED
Closed: 11 years ago
No longer depends on: 806231
Resolution: --- → FIXED
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..
This bug is fixed, so you should file a new bug with the issue you're experiencing.
You need to log in before you can comment on or make changes to this bug.