GNOME Bugzilla – Bug 536768
crash in Epiphany Web Browser: downloading a file, i th...
Last modified: 2009-05-19 04:34:12 UTC
Version: 2.22.2 What were you doing when the application crashed? downloading a file, i think the download just finshed Distribution: Debian lenny/sid Gnome Release: 2.22.1 2008-04-08 (Debian) BugBuddy Version: 2.22.0 System: Linux 2.6.26-rc4-amd64 #1 SMP Tue May 27 00:06:22 CEST 2008 x86_64 X Vendor: The X.Org Foundation X Vendor Release: 10400090 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome Memory status: size: 830906368 vsize: 830906368 resident: 205365248 share: 38436864 rss: 205365248 rss_rlim: 18446744073709551615 CPU usage: start_time: 1212571211 rtime: 56019 utime: 52593 stime: 3426 cutime:35339 cstime: 1473 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/epiphany-browser' Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread 0x7f1aa1d1d780 (LWP 23145)] [New Thread 0x45f91950 (LWP 10250)] [New Thread 0x422d5950 (LWP 10246)] [New Thread 0x44f8f950 (LWP 8800)] [New Thread 0x43f8d950 (LWP 23175)] [New Thread 0x41ad4950 (LWP 23151)] [New Thread 0x40ad2950 (LWP 23150)] [New Thread 0x412d3950 (LWP 23149)] 0x00007f1a9a90eedf in waitpid () from /lib/libpthread.so.0
+ Trace 199626
Thread 1 (Thread 0x7f1aa1d1d780 (LWP 23145))
----------- .xsession-errors (168060 sec old) --------------------- (npviewer.bin:26428): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64 (npviewer.bin:26428): Gtk-CRITICAL **: gtk_style_detach: assertion `style->attach_count > 0' failed (npviewer.bin:26428): Gtk-CRITICAL **: gtk_style_detach: assertion `style->attach_count > 0' failed (npviewer.bin:26428): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed (npviewer.bin:26428): Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed (npviewer.bin:26428): Gtk-CRITICAL **: gtk_widget_hide: assertion `GTK_IS_WIDGET (widget)' failed (npviewer.bin:26428): Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed ...Too much output, ignoring rest... --------------------------------------------------
Trace looks unique. D-BUS problem?
Maybe notification daemon died. Or something happened and the connection was lost. I guess there's little we can do since the crash comes from libnotify itself... I'd say notgnome if there hasn't been another trace like this, otherwise it might be worth checking if we can catch something to avoid crashes.
Well, it just happened again. As far as I can tell there is nothing wrong with dbus or the notification daemon--they are both still running and working. 0x00007fb95534dedf in waitpid () from /lib/libpthread.so.0
+ Trace 200318
Thread 1 (Thread 0x7fb95c75f780 (LWP 25827))
I'll rebuild libnotify with debug symbols to get a better trace.
*** Bug 538434 has been marked as a duplicate of this bug. ***
Could you install debug symbols for libnotify as well, please? I'm not sure this is a bug in Epiphany at all...
*** Bug 539383 has been marked as a duplicate of this bug. ***
Backtrace with libnotify and libdbus debugging symbols: (gdb) bt full
+ Trace 201518
Okay, this is out of my league... could be a d-bus bug (in which case you have to forward the bug to bugs.freedesktop.org). Chpe, any ideas? (BTW, Sam, seeing that you're getting good at this, have you thought about joining the Gnome bugteam?)
Possibly a libnotify or dbus-glib issue, but I'll take a look for 2.22.3.
*** Bug 540583 has been marked as a duplicate of this bug. ***
Seems definitely to be in dbus-glib. Which version was that with, git head? Nothing to do here from the Gnome side.
*** Bug 537495 has been marked as a duplicate of this bug. ***
I'm using dbus-glib 0.76. Shall I forward the bug to fdo?
Forwarded to <https://bugs.freedesktop.org/show_bug.cgi?id=16681>.
*** Bug 542757 has been marked as a duplicate of this bug. ***
*** Bug 542695 has been marked as a duplicate of this bug. ***
*** Bug 542830 has been marked as a duplicate of this bug. ***
*** Bug 542844 has been marked as a duplicate of this bug. ***
*** Bug 542942 has been marked as a duplicate of this bug. ***
*** Bug 543046 has been marked as a duplicate of this bug. ***
*** Bug 543053 has been marked as a duplicate of this bug. ***
*** Bug 543230 has been marked as a duplicate of this bug. ***
*** Bug 543151 has been marked as a duplicate of this bug. ***
*** Bug 543293 has been marked as a duplicate of this bug. ***
*** Bug 543339 has been marked as a duplicate of this bug. ***
*** Bug 543425 has been marked as a duplicate of this bug. ***
*** Bug 543462 has been marked as a duplicate of this bug. ***
*** Bug 543522 has been marked as a duplicate of this bug. ***
*** Bug 543525 has been marked as a duplicate of this bug. ***
*** Bug 543526 has been marked as a duplicate of this bug. ***
*** Bug 543538 has been marked as a duplicate of this bug. ***
*** Bug 543576 has been marked as a duplicate of this bug. ***
The stack trace doesn't tell me a lot on its own; I'd need to look at the epiphany code (will do once I return from traveling). But my guess is this crash is more likely related to trying to use a freed Notification object than a generic bug in dbus-glib.
*** Bug 544462 has been marked as a duplicate of this bug. ***
@Sam, why did you reopen this bug?
Colin's comments look like it's a bug in epiphany...
Had a few moments for a closer look, and this looks suspicious in downloader-view.c: #ifdef HAVE_LIBNOTIFY if (notify_is_initted ()) { notify_uninit (); } #endif This will basically invalidate all existing usage of libnotify; do we call downloader_view_finalize when the window is closed? I bet we do. And that's wrong for several reasons because it assumes nothing else in the app is using libnotify which seems unlikely. In this particular case what I bet is crashing is that we connect to the "changed" signal on a download but don't hold a ref...so if a download changes after the downloader view has been finalized we call into libnotify, and...boom. Bottom line I think the right fix is to init libnotify in some global app setup (ephy-main.c or whatever) and notify_uninit () close to before we exit(). Again I haven't verified this is the bug but wanted to write up my thoughts...might try doing some downloads in ephy now to test.
*** Bug 544783 has been marked as a duplicate of this bug. ***
*** Bug 544970 has been marked as a duplicate of this bug. ***
In case it helps, I think I've only seen this on my amd64 machine. My i386 machine seems to be able to download files without crashing.
This seems to only happen on my amd64 too.
*** Bug 545758 has been marked as a duplicate of this bug. ***
*** Bug 545901 has been marked as a duplicate of this bug. ***
Created attachment 115748 [details] [review] [PATCH] Move libnotify initialization to ephy-main This should fix the crash when libnotify was uninit before the notification was actually shown. Fix suggested by Colin Walters, closes: #536768. --- embed/downloader-view.c | 12 ------------ src/ephy-main.c | 13 +++++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-)
Thanks! Please commit to trunk and 2-24.
Committed. Let's hope this is now really fixed.
Thanks everyone! Though it's a bit late now, here is how to reliably provoke the crash (though I've only tested this on my amd64 laptop). 1. Start a download that will take some time 2. Open a new tab, and load a web page in it. 3. Leave the new tab in the foreground while the download finishes 4. Crash!
*** Bug 546523 has been marked as a duplicate of this bug. ***
*** Bug 547109 has been marked as a duplicate of this bug. ***
Diego: since there seems to be interest in another 2.22.x release (on the ML; not certain yet though), could you also commit this to 2-22 please? Thanks!
*** Bug 548743 has been marked as a duplicate of this bug. ***
*** Bug 548920 has been marked as a duplicate of this bug. ***
*** Bug 550155 has been marked as a duplicate of this bug. ***
*** Bug 550539 has been marked as a duplicate of this bug. ***
*** Bug 550900 has been marked as a duplicate of this bug. ***
*** Bug 551168 has been marked as a duplicate of this bug. ***
*** Bug 555397 has been marked as a duplicate of this bug. ***
*** Bug 557051 has been marked as a duplicate of this bug. ***
*** Bug 562492 has been marked as a duplicate of this bug. ***
*** Bug 578316 has been marked as a duplicate of this bug. ***
*** Bug 580875 has been marked as a duplicate of this bug. ***
*** Bug 583101 has been marked as a duplicate of this bug. ***