Summary: | www-client/mozilla-firefox-2.0.0.7 crashes on various dialog boxes | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Iain Buchanan <iaindb> |
Component: | Current packages | Assignee: | Mozilla Gentoo Team <mozilla> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alex, leio, nihilismwow |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
output from emerge --info
gdb output and backtrace, after the crash gdb output for edit-preference crash |
Description
Iain Buchanan
2007-10-04 04:10:07 UTC
Created attachment 132515 [details]
output from emerge --info
Created attachment 132517 [details]
gdb output and backtrace, after the crash
OK, it crashes when trying to edit my prefs as well. backtrace on the way, but it looks very similar... Created attachment 132518 [details]
gdb output for edit-preference crash
Same problem here, on both an ~x86 and an ~amd64. Check out this link: http://forums.gentoo.org/viewtopic-t-588263.html People here fixed the problem by downgrading glib and gtk. The downgrade is no fix, not even a good workaround. "G_SLICE=always-malloc mozilla-firefox" is just slightly better, but still awful, especially if you accidentally apply that to all things ran on the system. The problem is that apparently firefox uses g_free to free GtkBorder and GtkRequisition structures. Gtk+ has always provided gtk_requisition_free and gtk_border_free for that and g_free is not correct. In gtk+-2.12 GSlice is used to allocate said structures (for slight performance and memory gains) and freeing GSlice allocated things with free (through g_free) leads to a crash as GSlice doesn't use malloc. So Fedora seems to have a patch already: http://cvs.fedoraproject.org/viewcvs/devel/firefox/firefox-2.0-indicator-crash.patch?rev=1.1&view=auto The workaround of G_SLICE=always-malloc is bad, as it makes EVERYTHING not use GSlice, not just GtkBorder and GtkRequisition, and that option is generally only provided for debugging purposes - such as running a gtk+ program under valgrind, as valgrind doesn't understand the posix_memalign stunts that GSlice is doing, so GSlice can be instructed to use malloc/free with that env var. If someone sets that env var in env.d or for any other thing than not-yet-fixed firefox product, I'll come after them with a big piece of RAM broken from too much inefficient malloc/free usage for fixed-size memory structures or something ;p Additionally the Fedora CVS seems to suggest that this code path with the wrong kind of freeing of GtkBorder and co is only hit with a theme that sets GtkOptionMenu::indicator_size or GtkOptionMenu::indicator_spacing. So that's probably why my firefox works just fine. I use the default clearlooks theme from gtk-engines, and it apparently doesn't set these style properties on the long-ago-deprecated GtkOptionMenu control. So a good workaround might also be to use a different gtk/GNOME theme or something. going back to the gnome theme "clearlooks" works for me :) Firefox was crashing on "save as" dialog. I've also noticed that home compiled oocalc crash. So should be a bigger issue than just Firefox !! Changing Gtk theme until I found one that didnt make my heavy Gtk apps crashing (using Glider as theme). ooffice (oowriter specifically - haven't tried others) crashes on some format > page tabs for me. See Bug 194473 This was fixed on 2.0.0.8 |