GNOME Bugzilla – Bug 97451
Crashes when changing Gnome2 development application font preferences
Last modified: 2011-02-04 16:11:52 UTC
Package: acme Severity: normal Version: 1.99.9 Synopsis: Crashes when changing Gnome application font preferences Bugzilla-Product: acme Bugzilla-Component: general BugBuddy-GnomeVersion: 2.0 (2.1.1) Description: Description of Problem: When I change the "application font" in the font preferences app/dialog acme crashes straight afterwards. Steps to reproduce the problem: 1. acme running 2. choose Applications>Desktop Preferences>Font 3. change the Application Font to anything. Actual Results: Font changes in other applications. Acme crashes. Expected Results: No crash! How often does this happen? Each time. Additional Information: Built with Garnome 0.18.3. Debugging Information: Backtrace was generated from '/usr/local/garnome-0.18.3/bin/acme' [New Thread 1024 (LWP 2003)] 0x40860609 in wait4 () from /lib/libc.so.6
+ Trace 29751
Thread 1 (Thread 1024 (LWP 2003))
-- ************** * Simon Wong * ************** ------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-11-01 19:29 ------- Reassigning to the default owner of the component, hadess@hadess.net.
I could reproduce it with Gtk+ 2.1.1. This looks like a bug in Gtk+. Reassigning.
Hadess - there is no useful backtrace or further information here; "install ACME" is not really an acceptable reproduction mechanism. Since other apps don't crash, without further information, I'd have to guess it is an ACME bug.
Okay - I noticed the backtrace looked pretty lame but I'm no guru and it's what BugBuddy gave me. I'm rebuilding my Gnome2 Development stuff from Garnome 0.18.3 again so will try again and deliver some better information. Thanks.
Without accurate backtrace or non-ACME reproduction, there is really nothing we can do from the GTK+ end.
When changing the font, or the theme:
+ Trace 29950
I'll be trying to create a short test case later on.
Stack trace doesn't say anything to me but "something scribbled all over memory" and everything is all messed up.
Unless we get a better test case, it is going to have to be debugged by someone who runs acme.
Just to throw in my experiences with it - acme seems to crash on GTK+ theme change and font change. Happens with and without crack optimisations (GARNOME defaults to just a sane -O2, though).
Created attachment 12383 [details] [review] test case for crash
Owen, this is a pretty grave problem, if I want acme to be in the 2.2 release. Can you adjust severity and all and tell me what I should expect ?
Reopening, as the ball is back in Owen's court, AFAICS.
I guess I expect that if you can reproduce the problem, you can debug it... there is nothing I can really say beyond that; it could be a GTK+ bug, it could be an ACME bug ... there really is no information in this report that would allow me do determine the question. (Except that it oly happens for ACME)
Owen, I attached a test case to this bug, with code that works fine with gtk+ 2.0 and doesn't with gtk+ 2.1. I'm afraid it's the same bug that's hitting the panel transparency stuff. That would make at least 2 of us.
Sorry, missed the test case. I'll fix up the problem; not very hard. (Just move the the GDK_SETTINGS check before the check for not having an event widget) Though it's pretty clearly a "don't do that then!" problem. Use an event filter. Clearly redirecting events from the root window to another widget has a good potential to confuse GTK+. I don't know what the "panel transparency stuff" does; I hope it doesn't do that.
Sorry, it's black magic that used to work in gtk+ 2.0.x, and I guess I've become too used to warnings from gtk+ when I'm doing something wrong :)
Sorry for the spam
I fixed the bug properly in acme already. A warning rather than a crash for the other (potential) apps would still be good though.
I'm closing this as it's no longer happening in ACME 1.99.10 - thanks!
There was an couple line GTK+ code change I could make in case other programs were doing something similar; reopening.
Thu Dec 12 18:02:34 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkmain.c (gtk_main_do_event): Intercept events of type GDK_SETTING before we check to see if there was an event widget or not. (#97451, Simon Wong, Bastien Nocera)