GNOME Bugzilla – Bug 116693
Automatic crash with gdialog
Last modified: 2009-08-15 18:40:50 UTC
Package: gnome-utils Severity: normal Version: 2.2.0.3 Synopsis: Automatic crash with gdialog Bugzilla-Product: gnome-utils Bugzilla-Component: gdialog BugBuddy-GnomeVersion: 2.0 (2.2.0.1) Description: Description of Problem: Whenever gdialog is executed it automatically crashes with a seg fault. The error message is as follows: "** (bug-buddy:1363): CRITICAL **: file crux-draw.c: line 1020 (draw_box): assertion `height >= -1' failed" This only appears to happen on my install of RedHat 9. Steps to reproduce the problem: 1. Execute 'gdialog --yesno "Hello" 80 80' from the command-line or otherwise call gdialog Actual Results: Dialog box appears then disappears straightaway to be displayed with gnome crash dialog. Expected Results: Gdialog should run as normal How often does this happen? Everytime gdialog is executed Additional Information: Normal RedHat 9 install. Debugging Information: Backtrace was generated from '/usr/bin/gdialog' (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...[New Thread 1086372640 (LWP 1398)] (no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...(no debugging symbols found)... (no debugging symbols found)...0xffffe002 in ?? ()
+ Trace 38420
Thread 1 (Thread 1086372640 (LWP 1398))
------- Bug moved to this database by unknown@bugzilla.gnome.org 2003-07-04 06:52 ------- The original reporter (ricardo.gladwell@btintenet.com) of this bug does not have an account here. Reassigning to the exporter, unknown@bugzilla.gnome.org. Reassigning to the default owner of the component, gnome-utils-maint@bugzilla.gnome.org.
Appears to be a unique stack trace, according to the simple-dup-finder. Setting version->2.2.x, marking priority->high & severity->critical (it's a crasher), adding GNOMEVER2.2 and bugsquad keywords, and marking as new.
I believe we are seeing the same problem, and have traced it to a name space conflict between the crux engine library and gdialog. This conflict comes into play when the Crux theme is used. Note that the crux library (installed as part of the gnome-themes package) contains global functions named draw_box() and draw_shadow(); these conflict with global functions in gdialog (located in util.c). Investigation revealed that crux_style_class_init() is setting the draw_box and draw_shadow member functions of the GtkStyleClass to the gdialog functions of the same names, instead of the crux engine functions. Gtk later calls these functions with what amounts to trash arguments, causing the crash. The only apparent workaround is not to use Crux. I have devised a patch to the gnome-themes/Crux code which avoids name space conflicts; I will submit that soon.
Created attachment 19992 [details] [review] Patch to avoid name space conflicts in Crux (against gnome-themes 2.2)
The submitted patch changes all of the style_class member functions to static; the structure members are now initialized in a new function crux_draw_style_class_init(), in crux-draw.c. crux_style_class_init(), in crux-style.c, now simply calls the new function.
Hmm. gdialog was replaced by zenity in 2.4.x and I don't think there will be another 2.2.x release. Does zenity behave correctly in this case?
Yes, zenity does seem to work, but I should have been clearer about the larger point -- crux (or any well-behaved library) should not be polluting the name space with generically-named global functions.
Ah, I didn't read this carefully enough. We'll have to move it to gnome-themes to get this resolved then I guess.
glines is also reported to display incorrectly, and it turns out to be for the same reason, see http://bugs.debian.org/219313
I've just applied this patch to HEAD... if somebody still has a way of testing it, could they do so? If it works I'll apply it to gnome-2-8 branch as well.
No respones, so I've applied to 2.8.1 as well. Please re-open if you're still seeing this problem with HEAD or the gnome-2-8 branch.