Bug 895197
Summary: | icedtea-web for gtk+2: Firefox deadlocks in gdk_window_get_type() | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | David Woodhouse <dwmw2> | ||||
Component: | icedtea-web | Assignee: | Deepak Bhole <dbhole> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 18 | CC: | admiller, balay, craig, dbhole, faith, gecko-bugs-nobody, ipilcher, jvanek, kevin, mathieu-acct, mclasen, michele, michele, mjw, notting, nsoranzo, omajid, simon.arnaud, stransky, vwfoxguru | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2013-01-20 03:22:01 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
David Woodhouse
2013-01-14 19:36:46 UTC
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? 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. |