Closed
Bug 1388810
Opened 7 years ago
Closed 7 years ago
Gtk-CRITICAL **: gtk_widget_get_style_context: assertion 'GTK_IS_WIDGET (widget)' failed
Categories
(Core :: Widget: Gtk, defect)
Core
Widget: Gtk
Tracking
()
RESOLVED
DUPLICATE
of bug 1389133
Tracking | Status | |
---|---|---|
firefox55 | --- | unaffected |
firefox56 | --- | fixed |
firefox57 | --- | fixed |
People
(Reporter: jbeich, Unassigned)
References
Details
(Keywords: crash, regression)
Attachments
(1 file)
82.54 KB,
text/plain
|
Details |
Steps to reproduce:
1. Open https://sqlite.org/src/finfo?name=src/tclsqlite.c&ci=version-3.20.0&n=3
2. Click on [check-ins using] link
Actual results:
- Browser (non-e10s) or content process (e10s) crashes
Expected results:
- Open the link in the current tab
Environment:
$ c++ -v
FreeBSD clang version 5.0.0 (branches/release_50 309439) (based on LLVM 5.0.0svn)
Target: x86_64-unknown-freebsd12.0
Thread model: posix
InstalledDir: /usr/bin
$ pkg info -d gtk3
gtk3-3.22.15:
libXrender-0.9.10
libXrandr-1.5.1
libXinerama-1.1.3_3,1
libXi-1.7.9,1
libXfixes-5.0.3
libXext-1.3.3_1,1
libXdamage-1.1.4_3
libXcursor-1.1.14_3
libXcomposite-0.4.4_3,1
libX11-1.6.5,1
pango-1.40.6
adwaita-icon-theme-3.22.0
fontconfig-2.12.1,1
harfbuzz-1.4.7
freetype2-2.8
cups-2.2.3
hicolor-icon-theme-0.15
libepoxy-1.4.3
gtk-update-icon-cache-2.24.29
gdk-pixbuf2-2.36.6
cairo-1.14.10,2
glib-2.50.2_4,1
gettext-runtime-0.19.8.1_1
atk-2.24.0
Stacktrace:
From mozilla-central changeset 4c5fbf493763 snapshot.
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00000008026e52f5 in gtk_widget_get_style_context (widget=0x0) at gtkwidget.c:16566
16566 priv = widget->priv;
(gdb) l
16561 {
16562 GtkWidgetPrivate *priv;
16563
16564 g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
16565
16566 priv = widget->priv;
16567
16568 if (G_UNLIKELY (priv->context == NULL))
16569 {
16570 GdkScreen *screen;
(gdb) bt
#0 0x00000008026e52f5 in gtk_widget_get_style_context (widget=0x0) at gtkwidget.c:16566
#1 0x000000080f69237f in GetWidget (aWidgetType=MOZ_GTK_COMBOBOX_SEPARATOR)
at widget/gtk/WidgetStyleCache.cpp:636
#2 0x000000080f695954 in moz_gtk_get_widget_border (widget=MOZ_GTK_DROPDOWN, left=0x7fffffff4eec,
top=0x7fffffff4ee0, right=0x7fffffff4ee4, bottom=0x7fffffff4ee8, direction=GTK_TEXT_DIR_LTR)
at widget/gtk/gtk3drawing.cpp:2177
#3 0x000000080f6be95f in nsNativeThemeGTK::GetCachedWidgetBorder (this=0x823908a00,
aFrame=0x82c288950, aWidgetType=66 'B', aDirection=GTK_TEXT_DIR_LTR, aResult=0x7fffffff4ee0)
at widget/gtk/nsNativeThemeGTK.cpp:1281
#4 0x000000080f6bec27 in nsNativeThemeGTK::GetWidgetBorder (this=0x823908a00,
aContext=0x81cbcd120, aFrame=0x82c288950, aWidgetType=66 'B', aResult=0x7fffffff4ee0)
at widget/gtk/nsNativeThemeGTK.cpp:1366
#5 0x000000080fac86fd in mozilla::SizeComputationInput::InitOffsets (this=0x7fffffff5968, aWM=...,
aPercentBasis=..., aFrameType=mozilla::LayoutFrameType::ComboboxControl, aFlags=...,
aBorder=0x0, aPadding=0x0, aDisplay=0x82bdae550)
at layout/generic/ReflowInput.cpp:2645
#6 0x000000080faca865 in mozilla::ReflowInput::InitConstraints (this=0x7fffffff5968,
aPresContext=0x81baee000, aContainingBlockSize=..., aBorder=0x0, aPadding=0x0,
aFrameType=mozilla::LayoutFrameType::ComboboxControl)
at layout/generic/ReflowInput.cpp:2287
#7 0x000000080fac7ca3 in mozilla::ReflowInput::Init (this=0x7fffffff5968,
aPresContext=0x81baee000, aContainingBlockSize=0x0, aBorder=0x0, aPadding=0x0)
at layout/generic/ReflowInput.cpp:425
#8 0x000000080fac9001 in mozilla::ReflowInput::ReflowInput (this=0x7fffffff5968,
aPresContext=0x81baee000, aParentReflowInput=..., aFrame=0x82c288950, aAvailableSpace=...,
aContainingBlockSize=0x0, aFlags=0) at layout/generic/ReflowInput.cpp:257
#9 0x000000080fbc5569 in mozilla::Maybe<mozilla::ReflowInput>::emplace<nsPresContext*&, mozilla::ReflowInput const&, nsIFrame*&, mozilla::LogicalSize&> (this=0x7fffffff5968, aArgs=..., aArgs=...,
aArgs=..., aArgs=...)
at obj-x86_64-unknown-freebsd12.0/dist/include/mozilla/Maybe.h:459
#10 0x000000080fba63e1 in nsLineLayout::ReflowFrame (this=0x7fffffff5e50, aFrame=0x82c288950,
aReflowStatus=..., aMetrics=0x0, aPushedFrame=@0x7fffffff5b5f: false)
at layout/generic/nsLineLayout.cpp:861
#11 0x000000080faf8c68 in nsBlockFrame::ReflowInlineFrame (this=0x82bd21208, aState=...,
aLineLayout=..., aLine=..., aFrame=0x82c288950, aLineReflowStatus=0x7fffffff5d44)
at layout/generic/nsBlockFrame.cpp:4218
#12 0x000000080faf83d2 in nsBlockFrame::DoReflowInlineFrames (this=0x82bd21208, aState=...,
aLineLayout=..., aLine=..., aFloatAvailableSpace=..., aAvailableSpaceBSize=@0x7fffffff5f50: 0,
aFloatStateBeforeLine=0x7fffffff5f28, aKeepReflowGoing=0x7fffffff63ef,
aLineReflowStatus=0x7fffffff5f54, aAllowPullUp=true)
at layout/generic/nsBlockFrame.cpp:4014
#13 0x000000080faf546e in nsBlockFrame::ReflowInlineFrames (this=0x82bd21208, aState=...,
aLine=..., aKeepReflowGoing=0x7fffffff63ef)
at layout/generic/nsBlockFrame.cpp:3888
#14 0x000000080faf309f in nsBlockFrame::ReflowLine (this=0x82bd21208, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffff63ef) at layout/generic/nsBlockFrame.cpp:2871
#15 0x000000080faeec48 in nsBlockFrame::ReflowDirtyLines (this=0x82bd21208, aState=...)
at layout/generic/nsBlockFrame.cpp:2407
#16 0x000000080faebf68 in nsBlockFrame::Reflow (this=0x82bd21208, aPresContext=0x81baee000,
aMetrics=..., aReflowInput=..., aStatus=...)
at layout/generic/nsBlockFrame.cpp:1233
#17 0x000000080faf7638 in nsBlockReflowContext::ReflowBlock (this=0x7fffffff7320, aSpace=...,
aApplyBStartMargin=false, aPrevMargin=..., aClearance=0, aIsAdjacentWithBStart=true,
aLine=0x82460a228, aFrameRI=..., aFrameReflowStatus=..., aState=...)
at layout/generic/nsBlockReflowContext.cpp:306
#18 0x000000080faf43d5 in nsBlockFrame::ReflowBlockFrame (this=0x82bd20a40, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffff782f) at layout/generic/nsBlockFrame.cpp:3519
#19 0x000000080faf3067 in nsBlockFrame::ReflowLine (this=0x82bd20a40, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffff782f) at layout/generic/nsBlockFrame.cpp:2868
#20 0x000000080faeec48 in nsBlockFrame::ReflowDirtyLines (this=0x82bd20a40, aState=...)
at layout/generic/nsBlockFrame.cpp:2407
#21 0x000000080faebf68 in nsBlockFrame::Reflow (this=0x82bd20a40, aPresContext=0x81baee000,
aMetrics=..., aReflowInput=..., aStatus=...)
at layout/generic/nsBlockFrame.cpp:1233
#22 0x000000080faf7638 in nsBlockReflowContext::ReflowBlock (this=0x7fffffff8760, aSpace=...,
aApplyBStartMargin=true, aPrevMargin=..., aClearance=0, aIsAdjacentWithBStart=false,
aLine=0x82460a5a0, aFrameRI=..., aFrameReflowStatus=..., aState=...)
at layout/generic/nsBlockReflowContext.cpp:306
#23 0x000000080faf43d5 in nsBlockFrame::ReflowBlockFrame (this=0x82c377f38, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffff8c6f) at layout/generic/nsBlockFrame.cpp:3519
#24 0x000000080faf3067 in nsBlockFrame::ReflowLine (this=0x82c377f38, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffff8c6f) at layout/generic/nsBlockFrame.cpp:2868
#25 0x000000080faeec48 in nsBlockFrame::ReflowDirtyLines (this=0x82c377f38, aState=...)
at layout/generic/nsBlockFrame.cpp:2407
#26 0x000000080faebf68 in nsBlockFrame::Reflow (this=0x82c377f38, aPresContext=0x81baee000,
aMetrics=..., aReflowInput=..., aStatus=...)
at layout/generic/nsBlockFrame.cpp:1233
#27 0x000000080faf7638 in nsBlockReflowContext::ReflowBlock (this=0x7fffffff9ba0, aSpace=...,
aApplyBStartMargin=true, aPrevMargin=..., aClearance=0, aIsAdjacentWithBStart=true,
aLine=0x82460a640, aFrameRI=..., aFrameReflowStatus=..., aState=...)
at layout/generic/nsBlockReflowContext.cpp:306
#28 0x000000080faf43d5 in nsBlockFrame::ReflowBlockFrame (this=0x82c3774f0, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffffa0af) at layout/generic/nsBlockFrame.cpp:3519
#29 0x000000080faf3067 in nsBlockFrame::ReflowLine (this=0x82c3774f0, aState=..., aLine=...,
aKeepReflowGoing=0x7fffffffa0af) at layout/generic/nsBlockFrame.cpp:2868
#30 0x000000080faeec48 in nsBlockFrame::ReflowDirtyLines (this=0x82c3774f0, aState=...)
at layout/generic/nsBlockFrame.cpp:2407
#31 0x000000080faebf68 in nsBlockFrame::Reflow (this=0x82c3774f0, aPresContext=0x81baee000,
aMetrics=..., aReflowInput=..., aStatus=...)
at layout/generic/nsBlockFrame.cpp:1233
#32 0x000000080fb0b5a8 in nsContainerFrame::ReflowChild (this=0x827f32390, aKidFrame=0x82c3774f0,
aPresContext=0x81baee000, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=...,
aContainerSize=..., aFlags=0, aStatus=..., aTracker=0x0)
at layout/generic/nsContainerFrame.cpp:935
#33 0x000000080fb0aee3 in nsCanvasFrame::Reflow (this=0x827f32390, aPresContext=0x81baee000,
aDesiredSize=..., aReflowInput=..., aStatus=...)
at layout/generic/nsCanvasFrame.cpp:752
#34 0x000000080fb0b5a8 in nsContainerFrame::ReflowChild (this=0x827f32718, aKidFrame=0x827f32390,
aPresContext=0x81baee000, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=...,
aContainerSize=..., aFlags=3, aStatus=..., aTracker=0x0)
at layout/generic/nsContainerFrame.cpp:935
#35 0x000000080fb6ffc5 in nsHTMLScrollFrame::ReflowScrolledFrame (this=0x827f32718,
aState=0x7fffffffb610, aAssumeHScroll=false, aAssumeVScroll=true, aMetrics=0x7fffffffb438,
aFirstPass=true) at layout/generic/nsGfxScrollFrame.cpp:549
#36 0x000000080fb70818 in nsHTMLScrollFrame::ReflowContents (this=0x827f32718,
aState=0x7fffffffb610, aDesiredSize=...)
at layout/generic/nsGfxScrollFrame.cpp:661
#37 0x000000080fb71d34 in nsHTMLScrollFrame::Reflow (this=0x827f32718, aPresContext=0x81baee000,
aDesiredSize=..., aReflowInput=..., aStatus=...)
at layout/generic/nsGfxScrollFrame.cpp:1037
#38 0x000000080fae4213 in nsContainerFrame::ReflowChild (this=0x827f31940, aKidFrame=0x827f32718,
aPresContext=0x81baee000, aDesiredSize=..., aReflowInput=..., aX=0, aY=0, aFlags=0,
aStatus=..., aTracker=0x0) at layout/generic/nsContainerFrame.cpp:979
#39 0x000000080fae3c9e in mozilla::ViewportFrame::Reflow (this=0x827f31940,
aPresContext=0x81baee000, aDesiredSize=..., aReflowInput=..., aStatus=...)
at layout/generic/ViewportFrame.cpp:329
#40 0x000000080f9ead66 in mozilla::PresShell::DoReflow (this=0x824ad9000, target=0x827f31940,
aInterruptible=true) at layout/base/PresShell.cpp:9366
#41 0x000000080f9f203f in mozilla::PresShell::ProcessReflowCommands (this=0x824ad9000,
aInterruptible=true) at layout/base/PresShell.cpp:9539
#42 0x000000080f9f1cd0 in mozilla::PresShell::DoFlushPendingNotifications (this=0x824ad9000,
aFlush=...) at layout/base/PresShell.cpp:4237
#43 0x000000080f9bba50 in nsIPresShell::FlushPendingNotifications (this=0x824ad9000, aType=...)
at obj-x86_64-unknown-freebsd12.0/dist/include/nsIPresShell.h:591
#44 0x000000080f9b7a89 in nsRefreshDriver::Tick (this=0x81bae7100, aNowEpoch=1502297303864640,
aNowTime=...) at layout/base/nsRefreshDriver.cpp:1925
#45 0x000000080f9bdea8 in mozilla::RefreshDriverTimer::TickDriver (driver=0x81bae7100,
jsnow=1502297303864640, now=...) at layout/base/nsRefreshDriver.cpp:330
#46 0x000000080f9bdca3 in mozilla::RefreshDriverTimer::TickRefreshDrivers (this=0x823e64f80,
aJsNow=1502297303864640, aNow=..., aDrivers=nsTArray<RefPtr<nsRefreshDriver> > & = {...})
at layout/base/nsRefreshDriver.cpp:300
#47 0x000000080f9bdb34 in mozilla::RefreshDriverTimer::Tick (this=0x823e64f80,
jsnow=1502297303864640, now=...) at layout/base/nsRefreshDriver.cpp:321
#48 0x000000080f9bffcd in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers (this=0x823e64f80,
aTimeStamp=...) at layout/base/nsRefreshDriver.cpp:763
#49 0x000000080f9bf4e5 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver (this=0x823e64fe0, aVsyncTimestamp=...)
at layout/base/nsRefreshDriver.cpp:676
#50 0x000000080f9bc9b3 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run (this=0x82c314cc0) at layout/base/nsRefreshDriver.cpp:522
#51 0x000000080b8f59dc in nsThread::ProcessNextEvent (this=0x8004c4b40, aMayWait=false,
aResult=0x7fffffffd1ce) at xpcom/threads/nsThread.cpp:1446
#52 0x000000080b8f7c8f in NS_ProcessNextEvent (aThread=0x8004c4b40, aMayWait=false)
at xpcom/threads/nsThreadUtils.cpp:480
#53 0x000000080c1b34f2 in mozilla::ipc::MessagePump::Run (this=0x802178d80, aDelegate=0x8004c4c80)
at ipc/glue/MessagePump.cpp:97
#54 0x000000080c0cb0a7 in MessageLoop::RunInternal (this=0x8004c4c80)
at ipc/chromium/src/base/message_loop.cc:326
#55 0x000000080c0cb045 in MessageLoop::RunHandler (this=0x8004c4c80)
at ipc/chromium/src/base/message_loop.cc:319
#56 0x000000080c0cb01d in MessageLoop::Run (this=0x8004c4c80)
at ipc/chromium/src/base/message_loop.cc:299
#57 0x000000080f64cc3e in nsBaseAppShell::Run (this=0x818fe4c40)
at widget/nsBaseAppShell.cpp:156
#58 0x0000000812178f4a in nsAppStartup::Run (this=0x802172b50)
at toolkit/components/startup/nsAppStartup.cpp:287
#59 0x00000008122992f7 in XREMain::XRE_mainRun (this=0x7fffffffda38)
at toolkit/xre/nsAppRunner.cpp:4632
#60 0x000000081229a0d6 in XREMain::XRE_main (this=0x7fffffffda38, argc=5, argv=0x7fffffffe150,
aConfig=...) at toolkit/xre/nsAppRunner.cpp:4796
#61 0x000000081229a68c in XRE_main (argc=5, argv=0x7fffffffe150, aConfig=...)
at toolkit/xre/nsAppRunner.cpp:4891
#62 0x00000008122acb07 in mozilla::BootstrapImpl::XRE_main (this=0x8004900a0, argc=5,
argv=0x7fffffffe150, aConfig=...) at toolkit/xre/Bootstrap.cpp:45
#63 0x0000000000406f6f in do_main (argc=5, argv=0x7fffffffe150, envp=0x7fffffffe180)
at browser/app/nsBrowserApp.cpp:236
#64 0x0000000000406b2c in main (argc=5, argv=0x7fffffffe150, envp=0x7fffffffe180)
at browser/app/nsBrowserApp.cpp:309
Landry, can you reproduce on OpenBSD?
Flags: needinfo?(landry)
Comment 2•7 years ago
|
||
No crashes with 56.0b1, using an empty profile so with default settings and 1 content process. gtk+3-3.22.17, clang 4.0.0.
Flags: needinfo?(landry)
Bug 1365556 wasn't merged in 56.0b1 but should appear in 56.0b2. Can you recheck after it's out or use the latest checkout of mozilla-beta?
Flags: needinfo?(landry)
Comment 4•7 years ago
|
||
Doesnt crash using http://buildbot.rhaalovely.net/builds/mozilla-central-amd64/2017-08-09-be392d4638052977f11e3fdd7fe6aac78057351c/ (from http://buildbot.rhaalovely.net/builders/mozilla-central-amd64/builds/2170) w same profile (3 content processes it seems), which im not sure has this cset ?
Flags: needinfo?(landry)
Thanks. So, it's neither Clang/libc++ nor BSD nor Gtk 3.22-specific. I've tracked down the issue is caused by Gtk3 built with --disable-debug.
$ firefox -new-instance -profile $(mktemp -d) 'https://sqlite.org/src/timeline?n=200&uf=cbf6313f86400acd'
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_widget_get_style_context: assertion 'GTK_IS_WIDGET (widget)' failed
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_style_context_invalidate: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_widget_get_style_context: assertion 'GTK_IS_WIDGET (widget)' failed
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_style_context_invalidate: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_widget_get_style_context: assertion 'GTK_IS_WIDGET (widget)' failed
(/usr/local/lib/firefox/firefox:11567): Gtk-CRITICAL **: gtk_style_context_invalidate: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed
See Also: → 1351246
Summary: Crash in gtk_widget_get_style_context() when CreateWidget() fails → Gtk-CRITICAL **: gtk_widget_get_style_context: assertion 'GTK_IS_WIDGET (widget)' failed
Do you see Gtk-CRITICAL warnings as well? Can you assign priority? FreeBSD Ports dropped --disable-debug a few months ago. I just forgot to cleanup after testing.
Flags: needinfo?(karlt)
Bug 1388810 has a patch. Let's move discussion there.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(karlt)
Resolution: --- → DUPLICATE
Comment 8•7 years ago
|
||
Mirroring status to bug 1389133.
You need to log in
before you can comment on or make changes to this bug.
Description
•