Sometimes firefox locks up in g_cond_wait and stops redrawing itself. I haven't worked out what triggers it. (firefox:5382): GLib-GObject-WARNING **: cannot register existing type `GdkKeymap' (firefox:5382): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (firefox:5382): Gdk-CRITICAL **: gdk_keymap_have_bidi_layouts: assertion `GDK_IS_KEYMAP (keymap)' failed (firefox:5382): GLib-GObject-WARNING **: cannot register existing type `GdkWindow' (firefox:5382): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed (firefox:5382): Gdk-CRITICAL **: gdk_window_get_display: assertion `GDK_IS_WINDOW (window)' failed #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 #1 0x0000003f9c88501f in g_cond_wait (cond=cond@entry= 0x3f9cb223a0 <g_once_cond>, mutex=mutex@entry=0x3f9cb22398 <g_once_mutex>) at gthread-posix.c:748 #2 0x0000003f9c86b74b in g_once_init_enter (location=location@entry= 0x7f3fd491d4b0 <g_define_type_id__volatile.30149>) at gthread.c:682 #3 0x00007f3fd46c9df0 in gdk_window_get_type () at gdkwindow.c:246 #4 0x00007f3fd46f6679 in _gdk_x11_window_get_toplevel (window= 0x7f3fcfbdf3e0 [GdkWindow]) at gdkwindow-x11.c:165 #5 0x00007f3fd46f86e4 in gdk_x11_window_set_user_time (window= 0x7f3fcfbdf3e0 [GdkWindow], timestamp=<optimized out>) at gdkwindow-x11.c:3069 #6 0x00007f4006a419a7 in nsWindow::NativeShow(bool) () from /usr/lib64/xulrunner/libxul.so #7 0x00007f4006a468e1 in nsWindow::Show(bool) () from /usr/lib64/xulrunner/libxul.so #8 0x00007f40065ba22b in nsView::NotifyEffectiveVisibilityChanged(bool) () from /usr/lib64/xulrunner/libxul.so #9 0x00007f40065ba267 in nsView::SetVisibility(nsViewVisibility) () from /usr/lib64/xulrunner/libxul.so #10 0x00007f40065bb735 in nsViewManager::SetViewVisibility(nsIView*, nsViewVisibility) () from /usr/lib64/xulrunner/libxul.so ---Type <return> to continue, or q <return> to quit--- #11 0x00007f40063da7bd in nsMenuPopupFrame::LayoutPopup(nsBoxLayoutState&, nsIFrame*, bool) () from /usr/lib64/xulrunner/libxul.so #12 0x00007f40063df00c in nsPopupSetFrame::DoLayout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #13 0x00007f40063c4c8d in nsIFrame::Layout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #14 0x00007f40063c946f in nsSprocketLayout::Layout(nsIFrame*, nsBoxLayoutState&) [clone .part.13] () from /usr/lib64/xulrunner/libxul.so #15 0x00007f40063c9a6b in nsSprocketLayout::Layout(nsIFrame*, nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #16 0x00007f40063c5c89 in nsBoxFrame::DoLayout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #17 0x00007f40063c4c8d in nsIFrame::Layout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #18 0x00007f40063ca5b6 in nsStackLayout::Layout(nsIFrame*, nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #19 0x00007f40063c5c89 in nsBoxFrame::DoLayout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #20 0x00007f40063c4c8d in nsIFrame::Layout(nsBoxLayoutState&) () from /usr/lib64/xulrunner/libxul.so #21 0x00007f40063c6a72 in nsBoxFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) () from /usr/lib64/xulrunner/libxul.so ---Type <return> to continue, or q <return> to quit--- #22 0x00007f40062faa3e in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, int, int, unsigned int, unsigned int&, nsOverflowContinuationTracker*) () from /usr/lib64/xulrunner/libxul.so #23 0x00007f4006346684 in ViewportFrame::Reflow(nsPresContext*, nsHTMLReflowMetrics&, nsHTMLReflowState const&, unsigned int&) () from /usr/lib64/xulrunner/libxul.so #24 0x00007f40062d09a3 in PresShell::DoReflow(nsIFrame*, bool) () from /usr/lib64/xulrunner/libxul.so #25 0x00007f40062d0c2c in PresShell::ProcessReflowCommands(bool) () from /usr/lib64/xulrunner/libxul.so #26 0x00007f40062d4471 in PresShell::FlushPendingNotifications(mozFlushType) () from /usr/lib64/xulrunner/libxul.so #27 0x00007f40062d5c56 in nsRefreshDriver::Notify(nsITimer*) () from /usr/lib64/xulrunner/libxul.so #28 0x00007f4006bfbd59 in nsTimerImpl::Fire() () from /usr/lib64/xulrunner/libxul.so #29 0x00007f4006bfbe2f in nsTimerEvent::Run() () from /usr/lib64/xulrunner/libxul.so #30 0x00007f4006bf8f0a in nsThread::ProcessNextEvent(bool, bool*) () from /usr/lib64/xulrunner/libxul.so #31 0x00007f4006bce453 in NS_ProcessNextEvent_P(nsIThread*, bool) () from /usr/lib64/xulrunner/libxul.so ---Type <return> to continue, or q <return> to quit--- #32 0x00007f4006aefa55 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) () from /usr/lib64/xulrunner/libxul.so #33 0x00007f4006c19a69 in MessageLoop::Run() () from /usr/lib64/xulrunner/libxul.so #34 0x00007f4006a5d681 in nsBaseAppShell::Run() () from /usr/lib64/xulrunner/libxul.so #35 0x00007f4006939f13 in nsAppStartup::Run() () from /usr/lib64/xulrunner/libxul.so #36 0x00007f400614d4ce in XREMain::XRE_mainRun() () from /usr/lib64/xulrunner/libxul.so #37 0x00007f400614f4c0 in XREMain::XRE_main(int, char**, nsXREAppData const*) () from /usr/lib64/xulrunner/libxul.so #38 0x00007f400614f6fc in XRE_main () from /usr/lib64/xulrunner/libxul.so #39 0x0000000000402a60 in main ()
Same here, FF freezes in g_cond_wait(). Stack strace is slightly different: #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 #1 0x000000356128501f in g_cond_wait (cond=cond@entry=0x35615223a0 <g_once_cond>, mutex=mutex@entry=0x3561522398 <g_once_mutex>) at gthread-posix.c:748 #2 0x000000356126b74b in g_once_init_enter (location=location@entry=0x7eff7ce4c4b0 <g_define_type_id__volatile.30149>) at gthread.c:682 #3 0x00007eff7cbf8df0 in gdk_window_get_type () at gdkwindow.c:246 #4 0x00007eff7cc25679 in _gdk_x11_window_get_toplevel (window=0x7eff7c623dc0 [GdkWindow]) at gdkwindow-x11.c:165 #5 0x00007eff7cc276e4 in gdk_x11_window_set_user_time (window=window@entry=0x7eff7c623dc0 [GdkWindow], timestamp=<optimized out>) at gdkwindow-x11.c:3069 #6 0x0000003b611779a7 in SetUserTimeAndStartupIDForActivatedWindow (aWindow=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:1328 #7 nsWindow::NativeShow (this=this@entry=0x7eff8526ea80, aAction=aAction@entry=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:3900 #8 0x0000003b6117c8e1 in Show (aState=<optimized out>, this=0x7eff8526ea80) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:997 #9 nsWindow::Show (this=0x7eff8526ea80, aState=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:948 #10 0x0000003b60cf022b in nsView::NotifyEffectiveVisibilityChanged (this=this@entry=0x7eff7f314600, aEffectivelyVisible=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/view/src/nsView.cpp:319 #11 0x0000003b60cf0267 in nsView::SetVisibility (this=0x7eff7f314600, aVisibility=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/view/src/nsView.cpp:335 #12 0x0000003b60cf1735 in nsViewManager::SetViewVisibility (this=0x7eff84a23c00, aView=0x7eff7f314600, aVisible=nsViewVisibility_kShow) at /usr/src/debug/xulrunner-18.0/mozilla-release/view/src/nsViewManager.cpp:1075 #13 0x0000003b60b107bd in nsMenuPopupFrame::LayoutPopup (this=0x7eff7f316d58, aState=..., aParentMenu=<optimized out>, aSizedToPopup=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsMenuPopupFrame.cpp:465 #14 0x0000003b60b1500c in nsPopupSetFrame::DoLayout (this=<optimized out>, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsPopupSetFrame.cpp:122 #15 0x0000003b60afac8d in nsIFrame::Layout (this=0x7eff80a08d80, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBox.cpp:510 #16 0x0000003b60aff46f in nsSprocketLayout::Layout (this=this@entry=0x7eff89346580, aBox=0x7eff84cb6970, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsSprocketLayout.cpp:488 #17 0x0000003b60affa6b in nsSprocketLayout::Layout (this=0x7eff89346580, aBox=<optimized out>, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsSprocketLayout.cpp:175 #18 0x0000003b60afbc89 in nsBoxFrame::DoLayout (this=0x7eff84cb6970, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBoxFrame.cpp:900 #19 0x0000003b60afac8d in nsIFrame::Layout (this=0x7eff84cb6970, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBox.cpp:510 #20 0x0000003b60b005b6 in nsStackLayout::Layout (this=<optimized out>, aBox=0x7eff84cb6678, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsStackLayout.cpp:340 #21 0x0000003b60afbc89 in nsBoxFrame::DoLayout (this=0x7eff84cb6678, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBoxFrame.cpp:900 #22 0x0000003b60afac8d in nsIFrame::Layout (this=0x7eff84cb6678, aState=...) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBox.cpp:510 #23 0x0000003b60afca72 in nsBoxFrame::Reflow (this=0x7eff84cb6678, aPresContext=0x7eff84ae6000, aDesiredSize=..., aReflowState=..., aStatus=@0x7fff5fd442e4: 0) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/xul/base/src/nsBoxFrame.cpp:695 #24 0x0000003b60a30a3e in nsContainerFrame::ReflowChild (this=<optimized out>, aKidFrame=0x7eff84cb6678, aPresContext=0x7eff84ae6000, aDesiredSize=..., aReflowState=..., aX=<optimized out>, aY=0, aFlags=0, aStatus=@0x7fff5fd442e4: 0, aTracker=0x0) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/generic/nsContainerFrame.cpp:942 #25 0x0000003b60a7c684 in ViewportFrame::Reflow (this=0x7eff84cb5c18, aPresContext=0x7eff84ae6000, aDesiredSize=..., aReflowState=..., aStatus=@0x7fff5fd442e4: 0) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/generic/nsViewportFrame.cpp:210 #26 0x0000003b60a069a3 in PresShell::DoReflow (this=this@entry=0x7eff85cfbd60, target=target@entry=0x7eff84cb5c18, aInterruptible=aInterruptible@entry=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/base/nsPresShell.cpp:7533 #27 0x0000003b60a06c2c in PresShell::ProcessReflowCommands (this=this@entry=0x7eff85cfbd60, aInterruptible=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/base/nsPresShell.cpp:7674 #28 0x0000003b60a0a471 in PresShell::FlushPendingNotifications (this=0x7eff85cfbd60, aType=Flush_InterruptibleLayout) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/base/nsPresShell.cpp:3878 #29 0x0000003b60a0bc56 in nsRefreshDriver::Notify (this=0x7eff84ae6400, aTimer=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/layout/base/nsRefreshDriver.cpp:406 #30 0x0000003b61331d59 in nsTimerImpl::Fire (this=this@entry=0x7eff6e7fcd30) at /usr/src/debug/xulrunner-18.0/mozilla-release/xpcom/threads/nsTimerImpl.cpp:476 #31 0x0000003b61331e2f in nsTimerEvent::Run (this=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/xpcom/threads/nsTimerImpl.cpp:556 #32 0x0000003b6132ef0a in nsThread::ProcessNextEvent (this=0x7effa7250c00, mayWait=<optimized out>, result=0x7fff5fd4489f) at /usr/src/debug/xulrunner-18.0/mozilla-release/xpcom/threads/nsThread.cpp:620 #33 0x0000003b61304453 in NS_ProcessNextEvent_P (thread=<optimized out>, mayWait=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/objdir/xpcom/build/nsThreadUtils.cpp:220 #34 0x0000003b61225a55 in mozilla::ipc::MessagePump::Run (this=0x7effa086cac0, aDelegate=0x7effa72f6ff0) at /usr/src/debug/xulrunner-18.0/mozilla-release/ipc/glue/MessagePump.cpp:117 #35 0x0000003b6134fa69 in RunHandler (this=0x7effa72f6ff0) at /usr/src/debug/xulrunner-18.0/mozilla-release/ipc/chromium/src/base/message_loop.cc:208 #36 MessageLoop::Run (this=0x7effa72f6ff0) at /usr/src/debug/xulrunner-18.0/mozilla-release/ipc/chromium/src/base/message_loop.cc:182 #37 0x0000003b61193681 in nsBaseAppShell::Run (this=0x7eff9c96f160) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/xpwidgets/nsBaseAppShell.cpp:163 #38 0x0000003b6106ff13 in nsAppStartup::Run (this=0x7eff9c80a1a0) at /usr/src/debug/xulrunner-18.0/mozilla-release/toolkit/components/startup/nsAppStartup.cpp:290 #39 0x0000003b608834ce in XREMain::XRE_mainRun (this=this@entry=0x7fff5fd44ad0) at /usr/src/debug/xulrunner-18.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:3794 #40 0x0000003b608854c0 in XREMain::XRE_main (this=this@entry=0x7fff5fd44ad0, argc=argc@entry=1, argv=argv@entry=0x7fff5fd48eb8, aAppData=aAppData@entry=0x7effa7252480) at /usr/src/debug/xulrunner-18.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:3860 #41 0x0000003b608856fc in XRE_main (argc=1, argv=0x7fff5fd48eb8, aAppData=0x7effa7252480, aFlags=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/toolkit/xre/nsAppRunner.cpp:3935 #42 0x0000000000402a60 in main (argc=1, argv=0x7fff5fd48eb8) at /usr/src/debug/xulrunner-18.0/mozilla-release/xulrunner/stub/nsXULStub.cpp:483 (gdb)
Created attachment 678434 [details] thread apply bt full output
Experiencing the same behavior here. firefox-18.0-1.fc18.x86_64 on Fedora 18
Can you test Firefox binary package from mozilla.org?
Also seeing this after upgrading yesterday. firefox-18.0-1.fc18.x86_64 glibc-2.16-28.fc18.x86_64 kernel-3.7.2-201.fc18.x86_64
Note that gtk2 hasn't changed at all recently. Do we have a diff of what's changed gtk2-wise in upstream FF between 17 and 18?
Whatever the changes are, is gdk_window_get_type() supposed to hang?
http://notting.fedorapeople.org/gtk-diff FYI.
Thanks. I'll try to provide a test package with those changes reverted.
More info: can only get it to hang when started from the shell; it works from the commandline. Upstream 18.0 doesn't hang when started from the shell AFAICT. Differences between upstream and Fedora versions in terms of linked libraries: --- fedora 2013-01-15 08:55:29.630849916 -0500 +++ upstream 2013-01-15 08:55:37.568850137 -0500 @@ -25,14 +25,11 @@ libgthread-2.0.so.0 libgtk-x11-2.0.so.0 libharfbuzz.so.0 -libhunspell-1.3.so.0 libICE.so.6 libicudata.so.49 libicule.so.49 libicuuc.so.49 -libjpeg.so.62 libmozalloc.so -libmozjs.so libmozsqlite3.so libm.so.6 libnspr4.so @@ -53,12 +50,10 @@ libsmime3.so libSM.so.6 libssl3.so -libstartup-notification-1.so.0 libstdc++.so.6 libsystemd-daemon.so.0 libudev.so.1 libuuid.so.1 -libvpx.so.1 libwayland-client.so.0 libwayland-server.so.0 libX11.so.6 @@ -70,7 +65,6 @@ libxcb-shape.so.0 libxcb-shm.so.0 libxcb.so.1 -libxcb-util.so.0 libxcb-xfixes.so.0 libXcomposite.so.1 libXcursor.so.1 Given the shell-vs-command-line differences - startup notification?
I've been trying to narrow it down on my system, and after a long search, the one thing causing the complete lock is an environment variable. Specifically : MOZ_PLUGIN_PATH If it is set, FF will lock in seconds when opening a lot of tabs. I even tried "MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins /usr/lib64/firefox/firefox", and it too locked in seconds. As soon as I unset this var, it won't lock anymore.
*** Bug 895571 has been marked as a duplicate of this bug. ***
Bill, I was just able to make it deadlock when started via command line: #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165 #1 0x000000356128501f in g_cond_wait (cond=cond@entry=0x35615223a0 <g_once_cond>, mutex=mutex@entry=0x3561522398 <g_once_mutex>) at gthread-posix.c:748 #2 0x000000356126b74b in g_once_init_enter (location=location@entry=0x7f8fe1d4c4b0 <g_define_type_id__volatile.30149>) at gthread.c:682 #3 0x00007f8fe1af8df0 in gdk_window_get_type () at gdkwindow.c:246 #4 0x00007f8fe1b25679 in _gdk_x11_window_get_toplevel (window=0x7f8fda92e620 [GdkWindow]) at gdkwindow-x11.c:165 #5 0x00007f8fe1b276e4 in gdk_x11_window_set_user_time (window=window@entry=0x7f8fda92e620 [GdkWindow], timestamp=<optimized out>) at gdkwindow-x11.c:3069 #6 0x0000003b611779a7 in SetUserTimeAndStartupIDForActivatedWindow (aWindow=<optimized out>) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:1328 #7 nsWindow::NativeShow (this=this@entry=0x7f8ff69e5880, aAction=aAction@entry=true) at /usr/src/debug/xulrunner-18.0/mozilla-release/widget/gtk2/nsWindow.cpp:3900
Uninstalling icedtea-web also fix the problem for me. It also fixes 889644
Given the last upgrade of icedtea-web is: * Thu Dec 20 2012 Jiri Vanek <jvanek> 1.3.1-2 - Moved to be build with GTK3 This might actually make sense. Still trying to see if I can reproduce now that I have deinstalled it as well. Having a process loading both shared objects (gtk2 and 3) sounds like a no-no to me
Oh, that would be the problem! Java plugin is loaded as in-process plugin and the plugin libraries are mixed with the Firefox ones. And gtk3/gtk2 libraries are not supposed to live together in one process.
Ok, it hasn't deadlocked for me anymore. Can someone reassign this to icedtea-web? I am not sure why it was recompiled against gtk3 but it should be reverted at this point. It should be done with at least some coordination with its major users
(In reply to comment #17) > icedtea-web? I am not sure why it was recompiled against gtk3 icedtea-web plugin was linked against gtk3 for f18 because epiphany is using gtk3, see: https://bugzilla.redhat.com/show_bug.cgi?id=720836
So, do we need two builds of icedtea-web? Or...?
*** Bug 895648 has been marked as a duplicate of this bug. ***
icedtea-web-1.3.1-3.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/icedtea-web-1.3.1-3.fc18
We have removed GTK dependency completely with the above update. There should be no more issues with any of the browsers in Fedora. Please give it a try and add karma as appropriate. Thanks!
*** Bug 896288 has been marked as a duplicate of this bug. ***
*** Bug 901668 has been marked as a duplicate of this bug. ***
I can confirm that it works for me here now. Thanks all for helping out
icedtea-web-1.3.1-3.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.