Firefox segfaults on gnome, not kde, only from XDMCP

Daniel Allen dada.da at gmail.com
Tue Sep 19 20:58:05 UTC 2006


In case anyone else is interested in this very odd situation:
https://launchpad.net/distros/ubuntu/+source/gtk+2.0/+bug/61303

User testing suggests the problem is related to gnome's default
profile for Ubuntu 6.06.  When a user changes away from 'Human' (eg.,
to 'LegacyHuman'), the problem goes away.

Anyhow, I mostly guessed as to where to file the bug. Might or might
not be upstream...

I'm interested to know if it's replicable... I'm half surprised it
hasn't shown up elsewhere.

-Daniel

On 9/14/06, Daniel Allen <dada.da at gmail.com> wrote:
> On a batch of machines I just upgraded from Breezy to Dapper, Firefox
> (and gimp) will segfault when they are run from gnome via XDMCP
> (thin-client).
>
> It doesn't segfault from KDE via XDMCP, and it doesn't segfault from
> gnome from non-XDMCP X.
>
> As you'll see from a trace below, it could be a libcairo bug.  Or it
> could be a configuration change? I don't have any spare servers to
> test re-installing on, unfortunately.  Suggestions?
>
> I installed 'firefox-dbg' and run firefox -g, with the following output:
>
> ---
> drallen at host:~$ firefox
> Segmentation fault
> drallen at host:~$ firefox -g
> GNU gdb 6.4-debian
> Copyright 2005 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu"...Using host libthread_db
> library"/lib/libthread_db.so.1".
>
> (gdb) r
> Starting program: /usr/lib/firefox/firefox-bin -a firefox
> [Thread debugging using libthread_db enabled]
> [New Thread 46912551651792 (LWP 7136)]
> [New Thread 1082132832 (LWP 7147)]
> [New Thread 1090525536 (LWP 7148)]
> [New Thread 1098918240 (LWP 7149)]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 46912551651792 (LWP 7136)]
> 0x00002aaaac8b4aa3 in _cairo_pixman_composite_tri_fan ()
>    from /usr/lib/libcairo.so.2
> (gdb) bt
> #0  0x00002aaaac8b4aa3 in _cairo_pixman_composite_tri_fan ()
>    from /usr/lib/libcairo.so.2
> #1  0x00002aaaac8bb66d in _cairo_pixman_composite_tri_fan ()
>    from /usr/lib/libcairo.so.2
> #2  0x00002aaaac892f10 in cairo_image_surface_get_height ()
>    from /usr/lib/libcairo.so.2
> #3  0x00002aaaac898296 in cairo_surface_set_device_offset ()
>    from /usr/lib/libcairo.so.2
> #4  0x00002aaaac890732 in cairo_font_options_get_hint_metrics ()
>    from /usr/lib/libcairo.so.2
> #5  0x00002aaaac8909e3 in cairo_font_options_get_hint_metrics ()
>    from /usr/lib/libcairo.so.2
> #6  0x00002aaaac890ca7 in cairo_font_options_get_hint_metrics ()
>    from /usr/lib/libcairo.so.2
> #7  0x00002aaaac88b00d in cairo_fill_preserve () from /usr/lib/libcairo.so.2
> #8  0x00002aaaac88b029 in cairo_fill () from /usr/lib/libcairo.so.2
> #9  0x00002aaaafae4cd0 in ubuntulooks_draw_progressbar_trough ()
>    from /usr/lib/gtk-2.0/2.4.0/engines/libubuntulooks.so
> #10 0x00002aaaafadf0c7 in ubuntulooks_rc_style_register_type ()
>    from /usr/lib/gtk-2.0/2.4.0/engines/libubuntulooks.so
> #11 0x00002aaaab71ad69 in gtk_progress_bar_new_with_adjustment ()
>    from /usr/lib/libgtk-x11-2.0.so.0
> #12 0x00002aaaab71908f in gtk_progress_get_type ()
> ---Type <return> to continue, or q <return> to quit---
>    from /usr/lib/libgtk-x11-2.0.so.0
> #13 0x00002aaaacbe5910 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #14 0x00002aaaacbf4630 in g_signal_stop_emission ()
>    from /usr/lib/libgobject-2.0.so.0
> #15 0x00002aaaacbf5fcc in g_signal_emit_valist ()
>    from /usr/lib/libgobject-2.0.so.0
> #16 0x00002aaaacbf6383 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #17 0x00002aaaab7d4914 in gtk_widget_realize ()
>    from /usr/lib/libgtk-x11-2.0.so.0
> #18 0x00002aaaab7d503d in gtk_widget_set_parent ()
>    from /usr/lib/libgtk-x11-2.0.so.0
> #19 0x00002aaaab6afb6a in gtk_fixed_put () from /usr/lib/libgtk-x11-2.0.so.0
> #20 0x00002aaaacbe5910 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
> #21 0x00002aaaacbf4630 in g_signal_stop_emission ()
>    from /usr/lib/libgobject-2.0.so.0
> #22 0x00002aaaacbf5fcc in g_signal_emit_valist ()
>    from /usr/lib/libgobject-2.0.so.0
> #23 0x00002aaaacbf6383 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
> #24 0x00002aaab0b1b017 in setup_widget_prototype (widget=0x612100)
>     at gtk2drawing.c:111
> #25 0x00002aaab0b1b359 in ensure_progress_widget () at gtk2drawing.c:242
> #26 0x00002aaab0b1c738 in moz_gtk_get_widget_border (widget=891613288,
>     xthickness=0x7fffffe7abcc, ythickness=0x7fffffe7abc0) at gtk2drawing.c:1426
> ---Type <return> to continue, or q <return> to quit---
> #27 0x00002aaab0b394d0 in nsNativeThemeGTK::GetWidgetBorder (
>     this=<value optimized out>, aContext=<value optimized out>,
>     aFrame=<value optimized out>, aWidgetType=<value optimized out>,
>     aResult=0x7fffffe7abc0) at nsNativeThemeGTK.cpp:515
> #28 0x00002aaab2c08ff1 in nsBox::GetBorder (this=0xe756f0,
>     aMargin=@0x7fffffe7ac30) at nsBox.cpp:564
> #29 0x00002aaab2c08620 in nsIFrame::GetBorderAndPadding (this=0x2aaa3524f068,
>     aBorderAndPadding=@0x2aaa3524f058) at nsBox.cpp:538
> #30 0x00002aaab2c086bc in nsBox::AddBorderAndPadding (aBox=0x2aaa3524f068,
>     aSize=@0x7fffffe7ad70) at nsBox.cpp:1218
> #31 0x00002aaab2c10d76 in nsSprocketLayout::GetPrefSize (this=0xbb40f0,
>     aBox=0xe756f0, aState=@0x7fffffe7b3b0, aSize=@0x7fffffe7ad70)
>     at nsSprocketLayout.cpp:1374
> #32 0x00002aaab2c0b0d8 in nsBoxFrame::GetPrefSize (this=0xe756f0,
>     aBoxLayoutState=@0x7fffffe7b3b0, aSize=@0x7fffffe7ad70)
>     at nsBoxFrame.cpp:947
> #33 0x00002aaab2c10df6 in nsSprocketLayout::GetPrefSize (this=0xbb40f0,
>     aBox=0xe752e8, aState=@0x7fffffe7b3b0, aSize=@0x7fffffe7ae50)
>     at nsSprocketLayout.cpp:1345
> #34 0x00002aaab2c0b0d8 in nsBoxFrame::GetPrefSize (this=0xe752e8,
>     aBoxLayoutState=@0x7fffffe7b3b0, aSize=@0x7fffffe7ae50)
>     at nsBoxFrame.cpp:947
> #35 0x00002aaab2c10df6 in nsSprocketLayout::GetPrefSize (this=0xbb40f0,
> ---Type <return> to continue, or q <return> to quit---
>     aBox=0xe20f40, aState=@0x7fffffe7b3b0, aSize=@0x7fffffe7af90)
>     at nsSprocketLayout.cpp:1345
> #36 0x00002aaab2c0b0d8 in nsBoxFrame::GetPrefSize (this=0xe20f40,
>     aBoxLayoutState=@0x7fffffe7b3b0, aSize=@0x7fffffe7af90)
>     at nsBoxFrame.cpp:947
> #37 0x00002aaab2c10a38 in nsSprocketLayout::PopulateBoxSizes (this=0xbb40f0,
>     aBox=<value optimized out>, aState=@0x7fffffe7b3b0,
>     aBoxSizes=@0x7fffffe7b188, aComputedBoxSizes=<value optimized out>,
>     aMinSize=@0x7fffffe7b1b0, aMaxSize=@0x7fffffe7b1ac,
>     aFlexes=@0x7fffffe7b1a8) at nsSprocketLayout.cpp:821
> #38 0x00002aaab2c0f78a in nsSprocketLayout::Layout (this=0xbb40f0,
>     aBox=0xc655a0, aState=@0x7fffffe7b3b0) at nsSprocketLayout.cpp:260
> #39 0x00002aaab2c0b515 in nsBoxFrame::DoLayout (this=0x7fffffe73540,
>     aState=@0x7fffffe7b3b0) at nsBoxFrame.cpp:1104
> #40 0x00002aaab2c095a8 in nsIFrame::Layout (this=0xc655a0,
>     aState=@0x7fffffe7b3b0) at nsBox.cpp:800
> #41 0x00002aaab2c11d42 in nsStackLayout::Layout (this=<value optimized out>,
>     aBox=0xc64f00, aState=@0x7fffffe7b3b0) at nsStackLayout.cpp:316
> #42 0x00002aaab2c0b515 in nsBoxFrame::DoLayout (this=0x7fffffe73540,
>     aState=@0x7fffffe7b3b0) at nsBoxFrame.cpp:1104
> #43 0x00002aaab2c095a8 in nsIFrame::Layout (this=0xc64f00,
>     aState=@0x7fffffe7b3b0) at nsBox.cpp:800
> #44 0x00002aaab2c0bc10 in nsBoxFrame::Reflow (this=0xc64f00,
> ---Type <return> to continue, or q <return> to quit---
>     aPresContext=<value optimized out>, aDesiredSize=@0x7fffffe7b700,
>     aReflowState=@0x7fffffe7b4e0, aStatus=@0x7fffffe7b93c)
>     at nsBoxFrame.cpp:850
> #45 0x00002aaab2b02539 in nsContainerFrame::ReflowChild (
>     this=<value optimized out>, aKidFrame=0xc64f00, aPresContext=0xc5b070,
>     aDesiredSize=@0x7fffffe7b700, aReflowState=@0x7fffffe7b4e0, aX=0,
>     aY=-1255870448, aFlags=0, aStatus=@0x7fffffe7b93c)
>     at nsContainerFrame.cpp:905
> #46 0x00002aaab2b57788 in ViewportFrame::Reflow (this=0xc64e00,
>     aPresContext=0xc5b070, aDesiredSize=@0x7fffffe7b8d0,
>     aReflowState=@0x7fffffe7b7c0, aStatus=@0x7fffffe7b93c)
>     at nsViewportFrame.cpp:239
> #47 0x00002aaab2ae1e2c in PresShell::ResizeReflow (this=0xc63b00,
>     aWidth=13500, aHeight=<value optimized out>) at nsPresShell.cpp:3016
> #48 0x00002aaab2d7aa92 in nsViewManager::SetWindowDimensions (this=0xc5bd10,
>     aWidth=13500, aHeight=14145) at nsViewManager.h:418
> #49 0x00002aaab2d7e718 in nsViewManager::DispatchEvent (this=0xc5bd10,
>     aEvent=0x7fffffe7ba80, aStatus=0x7fffffe7ba4c) at nsViewManager.cpp:1953
> #50 0x00002aaab2d74660 in HandleEvent (aEvent=0x7fffffe7ba80) at nsView.cpp:171
> #51 0x00002aaaaf3f08ab in nsCommonWidget::DispatchEvent (this=0xc5be80,
>     aEvent=0x7fffffe7ba80, aStatus=@0x7fffffe7badc) at nsCommonWidget.cpp:219
> #52 0x00002aaaaf3f0c40 in nsCommonWidget::DispatchResizeEvent (
>     this=0x2aaa3524f068, aRect=<value optimized out>,
> ---Type <return> to continue, or q <return> to quit---
>     aStatus=<value optimized out>) at nsCommonWidget.cpp:205
> #53 0x00002aaaaf3f0d0a in nsCommonWidget::Resize (this=0xc5be80, aX=0, aY=0,
>     aWidth=900, aHeight=943, aRepaint=0) at nsCommonWidget.cpp:398
> #54 0x00002aaab2acc0a9 in DocumentViewerImpl::SetBounds (this=0x9da2c0,
>     aBounds=@0x9f1008) at nsDocumentViewer.cpp:1692
> #55 0x00002aaab0e6ea1c in nsDocShell::SetPositionAndSize (
>     this=<value optimized out>, x=<value optimized out>,
>     y=<value optimized out>, cx=-1624768, cy=0, fRepaint=-536870900)
>     at nsDocShell.cpp:3630
> #56 0x00002aaab02f8655 in nsWebShellWindow::HandleEvent (aEvent=0x7fffffe7bca0)
>     at nsWebShellWindow.cpp:343
> #57 0x00002aaaaf3f08ab in nsCommonWidget::DispatchEvent (this=0x9d6af0,
>     aEvent=0x7fffffe7bca0, aStatus=@0x7fffffe7bcfc) at nsCommonWidget.cpp:219
> #58 0x00002aaaaf3f0c40 in nsCommonWidget::DispatchResizeEvent (
>     this=0x2aaa3524f068, aRect=<value optimized out>,
>     aStatus=<value optimized out>) at nsCommonWidget.cpp:205
> #59 0x00002aaaaf3f0e68 in nsCommonWidget::Resize (this=0x9d6af0, aWidth=900,
>     aHeight=943, aRepaint=0) at nsCommonWidget.cpp:332
> #60 0x00002aaab02ee0eb in nsXULWindow::SetSize (this=0x9d6950, aCX=900,
>     aCY=943, aRepaint=0) at nsXULWindow.cpp:583
> #61 0x00002aaab02f1de5 in nsXULWindow::LoadSizeFromXUL (this=0x9d6950)
>     at nsXULWindow.cpp:1146
> #62 0x00002aaab02f3e37 in nsXULWindow::OnChromeLoaded (this=0x9d6950)
> ---Type <return> to continue, or q <return> to quit---
>     at nsXULWindow.cpp:961
> #63 0x00002aaab02f7b94 in nsWebShellWindow::OnStateChange (this=0x9d6950,
>     aProgress=0x9f0e28, aRequest=<value optimized out>,
>     aStateFlags=<value optimized out>, aStatus=<value optimized out>)
>     at nsWebShellWindow.cpp:641
> #64 0x00002aaab0e8f78f in nsDocLoader::FireOnStateChange (this=0x9f0e00,
>     aProgress=0x9f0e28, aRequest=0xa1a2d0, aStateFlags=786448, aStatus=0)
>     at nsDocLoader.cpp:1210
> #65 0x00002aaab0e8fbb4 in nsDocLoader::DocLoaderIsEmpty (this=0x9f0e00)
>     at nsDocLoader.cpp:739
> #66 0x00002aaab0e8fe69 in nsDocLoader::OnStopRequest (this=0x9f0e00,
>     aRequest=0xf563a0, aCtxt=<value optimized out>, aStatus=0)
>     at nsDocLoader.cpp:662
> #67 0x00002aaaaeb6eecf in nsLoadGroup::RemoveRequest (this=0x9f1380,
>     request=0xf563a0, ctxt=0x0, aStatus=0) at nsLoadGroup.cpp:732
> #68 0x00002aaab0fcb635 in imgRequestProxy::RemoveFromLoadGroup (this=0xf563a0,
>     releaseLoadGroup=1) at imgRequestProxy.cpp:175
> #69 0x00002aaab0fcb94d in imgRequestProxy::OnStopRequest (this=0xf563a0,
>     request=<value optimized out>, ctxt=<value optimized out>,
>     statusCode=4293342528) at imgRequestProxy.cpp:507
> #70 0x00002aaab0fc93f1 in imgRequest::OnStopRequest (
>     this=<value optimized out>, aRequest=0xf557b0, ctxt=0x0, status=0)
>     at imgRequest.cpp:756
> ---Type <return> to continue, or q <return> to quit---
> #71 0x00002aaaaf2ca9af in nsJARChannel::OnStopRequest (this=0xf557b0,
>     req=<value optimized out>, ctx=<value optimized out>, status=0)
>     at nsJARChannel.cpp:711
> #72 0x00002aaaaeb6a4da in nsInputStreamPump::OnStateStop (this=0xf55f00)
>     at nsInputStreamPump.cpp:506
> #73 0x00002aaaaeb6aabd in nsInputStreamPump::OnInputStreamReady (
>     this=0xf55f00, stream=0x2aaa3524f058) at nsInputStreamPump.cpp:343
> #74 0x00002aaaaaee1395 in nsInputStreamReadyEvent::EventHandler (
>     plevent=<value optimized out>) at nsStreamUtils.cpp:119
> #75 0x00002aaaaaef51e9 in PL_HandleEvent (self=0xf56328) at plevent.c:688
> #76 0x00002aaaaaef5988 in PL_ProcessPendingEvents (self=0x590ee0)
>     at plevent.c:623
> #77 0x00002aaaaaef6cab in nsEventQueueImpl::ProcessPendingEvents (
>     this=0x5ad2a0) at nsEventQueue.cpp:417
> #78 0x00002aaaaf3ef152 in event_processor_callback (
>     source=<value optimized out>, condition=891613272, data=0x2aaa3524f05c)
>     at nsAppShell.cpp:67
> #79 0x00002aaaace46bdd in g_main_context_dispatch ()
>    from /usr/lib/libglib-2.0.so.0
> #80 0x00002aaaace49ea5 in g_main_context_check ()
>    from /usr/lib/libglib-2.0.so.0
> #81 0x00002aaaace4a16a in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
> #82 0x00002aaaab6ee4a2 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
> ---Type <return> to continue, or q <return> to quit---
> #83 0x00002aaaaf3ef5a0 in nsAppShell::Run (this=0x67c0c0) at nsAppShell.cpp:139
> #84 0x00002aaaafbfb6fe in nsAppStartup::Run (this=0x67c040)
>     at nsAppStartup.cpp:150
> #85 0x000000000040856b in XRE_main (argc=<value optimized out>,
>     argv=<value optimized out>, aAppData=<value optimized out>)
>     at nsAppRunner.cpp:2374
> #86 0x00002aaaad69149b in __libc_start_main () from /lib/libc.so.6
> #87 0x000000000040391a in _start () at ../sysdeps/x86_64/elf/start.S:113
> (gdb) q
>
> Any suggestions would be greatly appreciated.
>
> -Daniel
>




More information about the ubuntu-users mailing list