Closed Bug 1287288 Opened 8 years ago Closed 8 years ago

Firefox crashes on startup with --disable-gio

Categories

(Firefox :: Shell Integration, defect)

48 Branch
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1286627
Firefox 51
Tracking Status
firefox47 --- unaffected
firefox48 --- wontfix
firefox49 --- wontfix
firefox50 --- wontfix
firefox51 --- fixed

People

(Reporter: jbeich, Unassigned)

References

Details

(Keywords: regression, Whiteboard: [qx:p-])

User Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:50.0) Gecko/20100101 Firefox/50.0
Build ID: 20160716111300

Steps to reproduce:

1. Add |ac_add_options --disable-gio| to .mozconfig
2. ./mach build
3. ./mach run



Actual results:

No window opens but ./mach returns with exit code 0. Adding --jsconsole leads to a crash.

  (lldb) target create "dist/bin/firefox"
  Current executable set to 'dist/bin/firefox' (x86_64).
  (lldb) settings set -- target.run-args  "--jsconsole" "-no-remote" "-profile" "tmp/scratch_user"
  (lldb) command source -s 1 '/tmp/mozilla-central/./.lldbinit'
  (lldb) r
  Process 71244 launching
  Process 71244 launched: 'dist/bin/firefox' (x86_64)
  Handler function threw an exception: TypeError: this._progressListener is undefined
  Stack: _onDocShellCreated/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/server/actors/webbrowser.js:1338:9
  exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
  Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:551:9
  Line: 1338, column: 9
  console.error:
    Handler function threw an exception: TypeError: this._progressListener is undefined
  Stack: _onDocShellCreated/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/server/actors/webbrowser.js:1338:9
  exports.makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:101:14
  Spinner.prototype.observe@resource://gre/modules/AsyncShutdown.jsm:551:9
  Line: 1338, column: 9
  libxul.so was compiled with optimization - stepping may behave oddly; variables may not be available.
  Process 71244 stopped
  * thread #1: tid = 102164, 0x00000008d15dcff3 libxul.so`mozilla::dom::SVGSVGElement::GetIntrinsicWidth() [inlined] nsSVGLength2::IsPercentage(this=<unavailable>) const at nsSVGLength2.h:134, stop reason = signal SIGSEGV: invalid address (fault address: 0x108)
      frame #0: 0x00000008d15dcff3 libxul.so`mozilla::dom::SVGSVGElement::GetIntrinsicWidth() [inlined] nsSVGLength2::IsPercentage(this=<unavailable>) const at nsSVGLength2.h:134 [opt]
     131    uint8_t GetCtxType() const { return mCtxType; }
     132    uint8_t GetSpecifiedUnitType() const { return mSpecifiedUnitType; }
     133    bool IsPercentage() const
  -> 134      { return mSpecifiedUnitType == nsIDOMSVGLength::SVG_LENGTHTYPE_PERCENTAGE; }
     135    float GetAnimValInSpecifiedUnits() const { return mAnimVal; }
     136    float GetBaseValInSpecifiedUnits() const { return mBaseVal; }
     137
  (lldb) bt
  * thread #1: tid = 102164, 0x00000008d15dcff3 libxul.so`mozilla::dom::SVGSVGElement::GetIntrinsicWidth() [inlined] nsSVGLength2::IsPercentage(this=<unavailable>) const at nsSVGLength2.h:134, stop reason = signal SIGSEGV: invalid address (fault address: 0x108)
    * frame #0: 0x00000008d15dcff3 libxul.so`mozilla::dom::SVGSVGElement::GetIntrinsicWidth() [inlined] nsSVGLength2::IsPercentage(this=<unavailable>) const at nsSVGLength2.h:134 [opt]
      frame #1: 0x00000008d15dcff3 libxul.so`mozilla::dom::SVGSVGElement::GetIntrinsicWidth(this=0x0000000000000000) + 3 at SVGSVGElement.cpp:1166 [opt]
      frame #2: 0x00000008d06e9924 libxul.so`mozilla::image::VectorImage::GetWidth(this=<unavailable>, aWidth=0x00007fffffff8988) + 132 at VectorImage.cpp:511 [opt]
      frame #3: 0x00000008d1b9d60e libxul.so`nsLayoutUtils::ComputeSizeForDrawing(aImage=0x000000081cfc7580, aImageSize=0x00007fffffff8988, aIntrinsicRatio=0x00007fffffff8a48, aGotWidth=0x00007fffffff8997, aGotHeight=0x00007fffffff8996) + 30 at nsLayoutUtils.cpp:6866 [opt]
      frame #4: 0x00000008d1b5040f libxul.so`nsImageRenderer::ComputeIntrinsicSize(this=0x00007fffffff8b20) + 95 at nsCSSRendering.cpp:5031 [opt]
      frame #5: 0x00000008d1b4eec4 libxul.so`nsCSSRendering::PrepareImageLayer(aPresContext=<unavailable>, aForFrame=<unavailable>, aFlags=<unavailable>, aBorderArea=<unavailable>, aBGClipRect=<unavailable>, aLayer=<unavailable>, aOutIsTransformedFixed=<unavailable>, aCompositonOp=<unavailable>) + 788 at nsCSSRendering.cpp:3494 [opt]
      frame #6: 0x00000008d1b6e0c8 libxul.so`nsDisplayBackgroundImage::nsDisplayBackgroundImage(this=0x0000000813fcf1b0, aBuilder=0x00007fffffffc800, aFrame=0x000000081b2f7dd0, aLayer=<unavailable>, aBackgroundRect=<unavailable>, aBackgroundStyle=<unavailable>) + 392 at nsDisplayList.cpp:2424 [opt]
      frame #7: 0x00000008d1b6ef71 libxul.so`nsDisplayBackgroundImage::AppendBackgroundItemsToTop(aBuilder=<unavailable>, aFrame=<unavailable>, aBackgroundRect=<unavailable>, aList=<unavailable>, aAllowWillPaintBorderOptimization=<unavailable>) + 1633 at nsDisplayList.cpp:2616 [opt]
      frame #8: 0x00000008d1bfd112 libxul.so`nsFrame::DisplayBorderBackgroundOutline(nsDisplayListBuilder*, nsDisplayListSet const&, bool) [inlined] nsFrame::DisplayBackgroundUnconditional(this=<unavailable>) + 113 at nsFrame.cpp:1893 [opt]
      frame #9: 0x00000008d1bfd0a1 libxul.so`nsFrame::DisplayBorderBackgroundOutline(this=<unavailable>, aBuilder=<unavailable>, aLists=<unavailable>, aForceBackground=<unavailable>) + 337 at nsFrame.cpp:1917 [opt]
      frame #10: 0x00000008d1bee337 libxul.so`nsBlockFrame::BuildDisplayList(this=0x000000081b2f7dd0, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffff9160, aLists=0x00007fffffff8f70) + 39 at nsBlockFrame.cpp:6525 [opt]
      frame #11: 0x00000008d1bf846f libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4159 at nsFrame.cpp:2897 [opt]
      frame #12: 0x00000008d1beee79 libxul.so`DisplayLine(aBuilder=<unavailable>, aLineArea=<unavailable>, aDirtyRect=<unavailable>, aLine=<unavailable>, aDepth=0, aDrawnLines=<unavailable>, aLists=<unavailable>, aFrame=<unavailable>, aTextOverflow=<unavailable>) + 633 at nsBlockFrame.cpp:6487 [opt]
      frame #13: 0x00000008d1bee7bb libxul.so`nsBlockFrame::BuildDisplayList(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 1195 at nsBlockFrame.cpp:6579 [opt]
      frame #14: 0x00000008d1bf846f libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4159 at nsFrame.cpp:2897 [opt]
      frame #15: 0x00000008d1c044b4 libxul.so`nsFlexContainerFrame::BuildDisplayList(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 132 at nsFlexContainerFrame.cpp:2174 [opt]
      frame #16: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #17: 0x00000008d1beee79 libxul.so`DisplayLine(aBuilder=<unavailable>, aLineArea=<unavailable>, aDirtyRect=<unavailable>, aLine=<unavailable>, aDepth=0, aDrawnLines=<unavailable>, aLists=<unavailable>, aFrame=<unavailable>, aTextOverflow=<unavailable>) + 633 at nsBlockFrame.cpp:6487 [opt]
      frame #18: 0x00000008d1bee7bb libxul.so`nsBlockFrame::BuildDisplayList(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 1195 at nsBlockFrame.cpp:6579 [opt]
      frame #19: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #20: 0x00000008d1beee79 libxul.so`DisplayLine(aBuilder=<unavailable>, aLineArea=<unavailable>, aDirtyRect=<unavailable>, aLine=<unavailable>, aDepth=0, aDrawnLines=<unavailable>, aLists=<unavailable>, aFrame=<unavailable>, aTextOverflow=<unavailable>) + 633 at nsBlockFrame.cpp:6487 [opt]
      frame #21: 0x00000008d1bee7bb libxul.so`nsBlockFrame::BuildDisplayList(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 1195 at nsBlockFrame.cpp:6579 [opt]
      frame #22: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #23: 0x00000008d1d25717 libxul.so`nsBoxFrame::BuildDisplayListForChildren(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 103 at nsBoxFrame.cpp:1380 [opt]
      frame #24: 0x00000008d1d254ca libxul.so`nsBoxFrame::BuildDisplayList(this=0x0000000813e78ea0, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffffa990, aLists=0x00007fffffffac90) + 506 at nsBoxFrame.cpp:1345 [opt]
      frame #25: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #26: 0x00000008d1c2a908 libxul.so`mozilla::ScrollFrameHelper::BuildDisplayList(this=0x0000000813e78ff8, aBuilder=0x00007fffffffc800, aDirtyRect=<unavailable>, aLists=<unavailable>) + 3176 at nsGfxScrollFrame.cpp:3392 [opt]
      frame #27: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #28: 0x00000008d1d25717 libxul.so`nsBoxFrame::BuildDisplayListForChildren(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 103 at nsBoxFrame.cpp:1380 [opt]
      frame #29: 0x00000008d1d254ca libxul.so`nsBoxFrame::BuildDisplayList(this=0x000000081a7b3a40, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffffb4a0, aLists=0x00007fffffffb2b0) + 506 at nsBoxFrame.cpp:1345 [opt]
      frame #30: 0x00000008d1bf846f libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4159 at nsFrame.cpp:2897 [opt]
      frame #31: 0x00000008d1d25717 libxul.so`nsBoxFrame::BuildDisplayListForChildren(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 103 at nsBoxFrame.cpp:1380 [opt]
      frame #32: 0x00000008d1d254ca libxul.so`nsBoxFrame::BuildDisplayList(this=0x000000081a7b2600, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffffb900, aLists=0x00007fffffffb970) + 506 at nsBoxFrame.cpp:1345 [opt]
      frame #33: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #34: 0x00000008d1d25717 libxul.so`nsBoxFrame::BuildDisplayListForChildren(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 103 at nsBoxFrame.cpp:1380 [opt]
      frame #35: 0x00000008d1d254ca libxul.so`nsBoxFrame::BuildDisplayList(this=0x00000008123233c8, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffffbd60, aLists=0x00007fffffffbdd0) + 506 at nsBoxFrame.cpp:1345 [opt]
      frame #36: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #37: 0x00000008d1d25717 libxul.so`nsBoxFrame::BuildDisplayListForChildren(this=<unavailable>, aBuilder=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>) + 103 at nsBoxFrame.cpp:1380 [opt]
      frame #38: 0x00000008d1d3d7a6 libxul.so`nsRootBoxFrame::BuildDisplayList(this=0x0000000812323138, aBuilder=0x00007fffffffc800, aDirtyRect=0x00007fffffffc0c0, aLists=0x00007fffffffc2b0) + 406 at nsRootBoxFrame.cpp:195 [opt]
      frame #39: 0x00000008d1bf873c libxul.so`nsIFrame::BuildDisplayListForChild(this=<unavailable>, aBuilder=<unavailable>, aChild=<unavailable>, aDirtyRect=<unavailable>, aLists=<unavailable>, aFlags=<unavailable>) + 4876 at nsFrame.cpp:2883 [opt]
      frame #40: 0x00000008d1c94bb5 libxul.so`ViewportFrame::BuildDisplayList(this=0x0000000812322cc8, aBuilder=0x00007fffffffc800, aDirtyRect=<unavailable>, aLists=0x00007fffffffc2b0) + 53 at nsViewportFrame.cpp:61 [opt]
      frame #41: 0x00000008d1c0d7b1 libxul.so`nsIFrame::BuildDisplayListForStackingContext(this=0x0000000812322cc8, aBuilder=0x00007fffffffc800, aDirtyRect=<unavailable>, aList=<unavailable>) + 2881 at nsFrame.cpp:2333 [opt]
      frame #42: 0x00000008d1b94146 libxul.so`nsLayoutUtils::PaintFrame(aRenderingContext=<unavailable>, aFrame=<unavailable>, aDirtyRegion=<unavailable>, aBackstop=<unavailable>, aBuilderMode=<unavailable>, aFlags=<unavailable>) + 2406 at nsLayoutUtils.cpp:3507 [opt]
      frame #43: 0x00000008d1bb8096 libxul.so`PresShell::Paint(this=<unavailable>, aViewToPaint=<unavailable>, aDirtyRegion=<unavailable>, aFlags=1) + 1222 at nsPresShell.cpp:6629 [opt]
      frame #44: 0x00000008d18d5e14 libxul.so`nsViewManager::ProcessPendingUpdatesPaint(this=<unavailable>, aWidget=<unavailable>) + 388 at nsViewManager.cpp:484 [opt]
      frame #45: 0x00000008d18d5b90 libxul.so`nsViewManager::ProcessPendingUpdatesForView(this=<unavailable>, aView=<unavailable>, aFlushDirtyRegion=<unavailable>) + 288 at nsViewManager.cpp:415 [opt]
      frame #46: 0x00000008d18d69a1 libxul.so`nsViewManager::ProcessPendingUpdates(this=<unavailable>) + 209 at nsViewManager.cpp:1119 [opt]
      frame #47: 0x00000008d1ae4b5f libxul.so`nsRefreshDriver::Tick(this=<unavailable>, aNowEpoch=<unavailable>, aNowTime=<unavailable>) + 4287 at nsRefreshDriver.cpp:1911 [opt]
      frame #48: 0x00000008d1ae7564 libxul.so`mozilla::RefreshDriverTimer::TickRefreshDrivers(this=<unavailable>, aJsNow=<unavailable>, aNow=<unavailable>, aDrivers=<unavailable>) + 116 at nsRefreshDriver.cpp:251 [opt]
      frame #49: 0x00000008d1ae7446 libxul.so`mozilla::RefreshDriverTimer::Tick(this=0x0000000813e14c90, jsnow=1468686453165534, now=(mValue = 8889071581693)) + 134 at nsRefreshDriver.cpp:270 [opt]
      frame #50: 0x00000008d1ae7e98 libxul.so`mozilla::detail::RunnableMethodImpl<void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp), true, false, mozilla::TimeStamp>::Run() [inlined] decltype(o=<unavailable>, m=<unavailable>).*fp0(Get<0ul>(fp1).PassAsParameter())) mozilla::detail::RunnableMethodArguments<mozilla::TimeStamp>::applyImpl<mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver, void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp), StoreCopyPassByValue<mozilla::TimeStamp>, 0ul>(mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver*, void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp), mozilla::Tuple<StoreCopyPassByValue<mozilla::TimeStamp> >&, mozilla::IndexSequence<0ul>) + 24 at nsThreadUtils.h:729 [opt]
      frame #51: 0x00000008d1ae7e80 libxul.so`mozilla::detail::RunnableMethodImpl<void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp), true, false, mozilla::TimeStamp>::Run() [inlined] _ZN7mozilla6detail23RunnableMethodArgumentsIJNS_9TimeStampEEE5applyINS_23VsyncRefreshDriverTimer26RefreshDriverVsyncObserverEMS6_FvS2_EEEDTcl9applyImplfp_fp0_dtdefpT10mArgumentscvNS_13IndexSequenceIJLm0EEEE_EEEPT_T0_(o=<unavailable>, m=<unavailable>) at nsThreadUtils.h:735 [opt]
      frame #52: 0x00000008d1ae7e80 libxul.so`mozilla::detail::RunnableMethodImpl<void (mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::*)(mozilla::TimeStamp), true, false, mozilla::TimeStamp>::Run(this=<unavailable>) + 16 at nsThreadUtils.h:764 [opt]
      frame #53: 0x00000008cf8a90bc libxul.so`nsThread::ProcessNextEvent(this=<unavailable>, aMayWait=<unavailable>, aResult=<unavailable>) + 668 at nsThread.cpp:1068 [opt]
      frame #54: 0x00000008cf8d0eb3 libxul.so`NS_ProcessNextEvent(aThread=<unavailable>, aMayWait=true) + 51 at nsThreadUtils.cpp:290 [opt]
      frame #55: 0x00000008d171d9dd libxul.so`mozilla::dom::workers::RuntimeService::Cleanup(this=<unavailable>) + 589 at RuntimeService.cpp:1923 [opt]
      frame #56: 0x00000008d1720db0 libxul.so`mozilla::dom::workers::RuntimeService::Observe(this=0x0000000819de0700, aSubject=<unavailable>, aTopic="xpcom-shutdown-threads", aData=<unavailable>) + 416 at RuntimeService.cpp:2406 [opt]
      frame #57: 0x00000008cf86f384 libxul.so`nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) + 56 at nsObserverList.cpp:112 [opt]
      frame #58: 0x00000008cf86f34c libxul.so`nsObserverService::NotifyObservers(this=<unavailable>, aSubject=<unavailable>, aTopic=<unavailable>, aSomeData=<unavailable>) + 156 at nsObserverService.cpp:305 [opt]
      frame #59: 0x00000008cf8c3242 libxul.so`mozilla::ShutdownXPCOM(aServMgr=0x00000008008d9900) + 322 at XPCOMInit.cpp:879 [opt]
      frame #60: 0x00000008d2283ea5 libxul.so`ScopedXPCOMStartup::~ScopedXPCOMStartup(this=0x0000000800839910) + 117 at nsAppRunner.cpp:1339 [opt]
      frame #61: 0x00000008d2289515 libxul.so`XREMain::XRE_main(int, char**, nsXREAppData const*) [inlined] mozilla::DefaultDelete<ScopedXPCOMStartup>::operator(aPtr=0x0000000800839910)(ScopedXPCOMStartup*) const + 8 at UniquePtr.h:528 [opt]
      frame #62: 0x00000008d228950d libxul.so`XREMain::XRE_main(int, char**, nsXREAppData const*) [inlined] mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::reset(ScopedXPCOMStartup*) + 17 at UniquePtr.h:343 [opt]
      frame #63: 0x00000008d22894fc libxul.so`XREMain::XRE_main(int, char**, nsXREAppData const*) [inlined] mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::operator=(std::nullptr_t) at UniquePtr.h:313 [opt]
      frame #64: 0x00000008d22894fc libxul.so`XREMain::XRE_main(this=0x00007fffffffdd40, argc=<unavailable>, argv=<unavailable>, aAppData=<unavailable>) + 604 at nsAppRunner.cpp:4360 [opt]
      frame #65: 0x00000008d228988f libxul.so`::XRE_main(argc=<unavailable>, argv=<unavailable>, aAppData=<unavailable>, aFlags=<unavailable>) + 239 at nsAppRunner.cpp:4423 [opt]
      frame #66: 0x00000000004057a1 firefox`main [inlined] do_main(argc=<unavailable>, argv=<unavailable>, envp=<unavailable>) + 357 at nsBrowserApp.cpp:251 [opt]
      frame #67: 0x000000000040563c firefox`main(argc=<unavailable>, argv=<unavailable>, envp=<unavailable>) + 844 at nsBrowserApp.cpp:387 [opt]
      frame #68: 0x0000000000405190 firefox`_start(ap=<unavailable>, cleanup=<unavailable>) + 384 at crt1.c:72 [opt]

Note, source lines are from https://hg.mozilla.org/integration/mozilla-inbound/file/5d9f5afda58e



Expected results:

Firefox starts and a new window emerges (e.g., about:home) until user interacts with it.
Blocks: 1276027
Component: Untriaged → Shell Integration
Keywords: regression
See Also: → 1286627
Backing out bug 1276027 helps, so does dropping --disable-gio from .mozconfig.
Version: Trunk → 48 Branch
The stack in comment 0 doesn't seem consistent with the claim that bug 1276027 is causing this.

Does running ShellService.isDefaultBrowser(false, false)) in a browser scratchpad trigger the crash too? That's the only call being added in that bug, and would imply an existing issue in the native ShellService implementation.
(In reply to Justin Dolske [:Dolske] from comment #3)
> Does running ShellService.isDefaultBrowser(false, false)) in a browser
> scratchpad trigger the crash too?

No, it prints: "Exception: ReferenceError: ShellService is not defined". Maybe -jsconsole crashes due to recursive exceptions.

With bug 1276027 reverted -jsconsole window contains:

1468881684335	Toolkit.Telemetry	ERROR	TelemetryEnvironment::_isDefaultBrowser - Could not determine if default browser: [Exception... "Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]"  nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)"  location: "JS frame :: resource://gre/modules/XPCOMUtils.jsm :: XPCU_serviceLambda :: line 230"  data: no] Stack trace: XPCU_serviceLambda()@resource://gre/modules/XPCOMUtils.jsm:230 < XPCU_defineLazyGetter/<.get()@resource://gre/modules/XPCOMUtils.jsm:198 < get()@resource:///modules/ShellService.jsm:104 < isDefaultBrowser()@resource:///modules/ShellService.jsm:90 < EnvironmentCache.prototype._isDefaultBrowser()@resource://gre/modules/TelemetryEnvironment.jsm:1116 < EnvironmentCache.prototype._updateSettings()@resource://gre/modules/TelemetryEnvironment.jsm:1155 < EnvironmentCache()@resource://gre/modules/TelemetryEnvironment.jsm:746 < getGlobal()@resource://gre/modules/TelemetryEnvironment.jsm:56 < this.TelemetryEnvironment.registerChangeListener()@resource://gre/modules/TelemetryEnvironment.jsm:75 < TelemetryStartup.prototype.observe()@TelemetryStartup.js:32Log.jsm:753
uncaught exception: undefined(unknown)
NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsITelemetry.getHistogramById]nsBrowserGlue.js:1069
Let me reiterate: after bug 1276027 firefox doesn't start at all. -jsconsole crash could be a different issue but at least it makes firefox print something on terminal before crashing.
Whiteboard: [qx:p-]
Jan can you explain a bit more why  the build needs to have this option turned on? What is the impact of not having it enabled?  Are you now building with the flag off?
Flags: needinfo?(jbeich)
> why the build needs to have this option turned on?

FreeBSD builds fine with empty .mozconfig. This bug has "Unspecified" platform unless someone can confirm --disable-gio doesn't introduce runtime regressions on Linux.

> What is the impact of not having it enabled?

--disable-gio removes glib dependency which was useful with --enable-default-toolkit=cairo-qt before bug 1282866 or with --enable-gnomevfs before bug 1134537. Since gtk itself depends on glib, the benefit nowadays maybe unclear.

> Are you now building with the flag off?

I'm only trying to figure out if the option is still supported upstream in order to continue exposing or kill it downstream.
Flags: needinfo?(jbeich)
Glandium seems like the best person to address comment 7.
Flags: needinfo?(mh+mozilla)
With gnomevfs support gone, there is no alternative to using GIO, so we should just kill that option.
Flags: needinfo?(mh+mozilla)
Seems this is wontfix for at least 49 and 50.

(In reply to Mike Hommey [:glandium] from comment #9)
> With gnomevfs support gone, there is no alternative to using GIO, so we
> should just kill that option.

Does this mean we need to drop --disable-gio?
Flags: needinfo?(mh+mozilla)
Yes.
Flags: needinfo?(mh+mozilla)
I can no longer reproduce after bug 1286627 was fixed.
Status: NEW → RESOLVED
Closed: 8 years ago
Depends on: 1286627
Resolution: --- → WORKSFORME
See Also: 1286627
Resolution: WORKSFORME → FIXED
Better dup against bug 1286627 which manifested 2 releases earlier.
Resolution: FIXED → DUPLICATE
Target Milestone: --- → Firefox 51
You need to log in before you can comment on or make changes to this bug.