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)

defect
Not set
normal

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)

Attached file "bt full" output
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)
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)
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
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: