GNOME Bugzilla – Bug 523583
crash in Keyboard Indicator (gtk_widget_set_tooltip_text)
Last modified: 2009-05-12 22:35:45 UTC
Version: 2.20.1 What were you doing when the application crashed? Добавляю апплет в бар Distribution: Debian lenny/sid Gnome Release: 2.22.0 2008-03-14 (Debian) BugBuddy Version: 2.22.0 System: Linux 2.6.24-1-686 #1 SMP Mon Feb 11 14:37:45 UTC 2008 i686 X Vendor: The X.Org Foundation X Vendor Release: 10400090 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome Memory status: size: 21950464 vsize: 21950464 resident: 9932800 share: 7208960 rss: 9932800 rss_rlim: 4294967295 CPU usage: start_time: 1206030965 rtime: 32 utime: 28 stime: 4 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/lib/bug-buddy/gnome-keyboard-applet' (no debugging symbols found) Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread 0xb6efa720 (LWP 3627)] (no debugging symbols found) 0xffffe410 in __kernel_vsyscall ()
+ Trace 192956
Thread 1 (Thread 0xb6efa720 (LWP 3627))
Thanks for taking the time to report this bug. Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so and reopen this bug or report a new one. Thanks in advance!
*** Bug 525098 has been marked as a duplicate of this bug. ***
*** Bug 526416 has been marked as a duplicate of this bug. ***
*** Bug 526417 has been marked as a duplicate of this bug. ***
*** Bug 526418 has been marked as a duplicate of this bug. ***
*** Bug 528420 has been marked as a duplicate of this bug. ***
*** Bug 528422 has been marked as a duplicate of this bug. ***
*** Bug 528478 has been marked as a duplicate of this bug. ***
*** Bug 528480 has been marked as a duplicate of this bug. ***
*** Bug 528585 has been marked as a duplicate of this bug. ***
*** Bug 528896 has been marked as a duplicate of this bug. ***
*** Bug 529286 has been marked as a duplicate of this bug. ***
*** Bug 529862 has been marked as a duplicate of this bug. ***
*** Bug 530917 has been marked as a duplicate of this bug. ***
*** Bug 530863 has been marked as a duplicate of this bug. ***
*** Bug 531196 has been marked as a duplicate of this bug. ***
*** Bug 531202 has been marked as a duplicate of this bug. ***
*** Bug 533172 has been marked as a duplicate of this bug. ***
*** Bug 534190 has been marked as a duplicate of this bug. ***
*** Bug 535915 has been marked as a duplicate of this bug. ***
@g.borello: PLEASE do set such bugs to NEEDINFO. By setting to INCOMPLETE reporters of dups do not get added to CC. This has so many dups already.
*** Bug 535391 has been marked as a duplicate of this bug. ***
*** Bug 537288 has been marked as a duplicate of this bug. ***
*** Bug 537526 has been marked as a duplicate of this bug. ***
*** Bug 537939 has been marked as a duplicate of this bug. ***
*** Bug 538178 has been marked as a duplicate of this bug. ***
*** Bug 538309 has been marked as a duplicate of this bug. ***
*** Bug 538320 has been marked as a duplicate of this bug. ***
*** Bug 538321 has been marked as a duplicate of this bug. ***
*** Bug 538418 has been marked as a duplicate of this bug. ***
*** Bug 538420 has been marked as a duplicate of this bug. ***
*** Bug 538605 has been marked as a duplicate of this bug. ***
*** Bug 538651 has been marked as a duplicate of this bug. ***
*** Bug 538654 has been marked as a duplicate of this bug. ***
*** Bug 538658 has been marked as a duplicate of this bug. ***
*** Bug 538719 has been marked as a duplicate of this bug. ***
*** Bug 538720 has been marked as a duplicate of this bug. ***
*** Bug 538813 has been marked as a duplicate of this bug. ***
*** Bug 538820 has been marked as a duplicate of this bug. ***
a better trace from bug 538719, I think it is still incomplete, but this might be useful:
+ Trace 200770
*** Bug 539000 has been marked as a duplicate of this bug. ***
*** Bug 539851 has been marked as a duplicate of this bug. ***
*** Bug 539380 has been marked as a duplicate of this bug. ***
*** Bug 539471 has been marked as a duplicate of this bug. ***
*** Bug 540232 has been marked as a duplicate of this bug. ***
*** Bug 540230 has been marked as a duplicate of this bug. ***
*** Bug 540229 has been marked as a duplicate of this bug. ***
*** Bug 540228 has been marked as a duplicate of this bug. ***
*** Bug 540241 has been marked as a duplicate of this bug. ***
*** Bug 540634 has been marked as a duplicate of this bug. ***
*** Bug 541394 has been marked as a duplicate of this bug. ***
*** Bug 541395 has been marked as a duplicate of this bug. ***
*** Bug 541729 has been marked as a duplicate of this bug. ***
*** Bug 541099 has been marked as a duplicate of this bug. ***
*** Bug 541756 has been marked as a duplicate of this bug. ***
*** Bug 542544 has been marked as a duplicate of this bug. ***
*** Bug 541818 has been marked as a duplicate of this bug. ***
*** Bug 541829 has been marked as a duplicate of this bug. ***
*** Bug 541837 has been marked as a duplicate of this bug. ***
*** Bug 542083 has been marked as a duplicate of this bug. ***
*** Bug 542943 has been marked as a duplicate of this bug. ***
*** Bug 542987 has been marked as a duplicate of this bug. ***
*** Bug 542988 has been marked as a duplicate of this bug. ***
*** Bug 543561 has been marked as a duplicate of this bug. ***
*** Bug 543464 has been marked as a duplicate of this bug. ***
*** Bug 543559 has been marked as a duplicate of this bug. ***
Dear Reporters, Thanks for taking the time to report this bug. We lack some information needed to debug this problem, can you get us a stack trace with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
[Thread debugging using libthread_db enabled] [New Thread 0xb6e71700 (LWP 10015)] 0xb7f67430 in __kernel_vsyscall ()
+ Trace 203174
Thread 1 (Thread 0xb6e71700 (LWP 10015))
----------- .xsession-errors (116 sec old) --------------------- closing closing closing (gnome-terminal:9672): GnomeUI-WARNING **: While connecting to session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed. ** (gnome-panel:3505): WARNING **: panel-applet-frame.c:1344: failed to load applet OAFIID:GNOME_KeyboardApplet (cannot get popup component): Unknown CORBA exception id: 'IDL:omg.org/CORBA/COMM_FAILURE:1.0' ** (gnome-panel:3505): WARNING **: panel-applet-frame.c:1344: failed to load applet OAFIID:GNOME_KeyboardApplet (cannot get popup component): Unknown CORBA exception id: 'IDL:omg.org/CORBA/COMM_FAILURE:1.0' ** (gnome-panel:3505): WARNING **: panel-applet-frame.c:1344: failed to load applet OAFIID:GNOME_KeyboardApplet (cannot get popup component): Unknown CORBA exception id: 'IDL:omg.org/CORBA/COMM_FAILURE:1.0' --------------------------------------------------
*** Bug 543603 has been marked as a duplicate of this bug. ***
*** Bug 543997 has been marked as a duplicate of this bug. ***
*** Bug 544055 has been marked as a duplicate of this bug. ***
*** Bug 544098 has been marked as a duplicate of this bug. ***
*** Bug 545196 has been marked as a duplicate of this bug. ***
*** Bug 546976 has been marked as a duplicate of this bug. ***
*** Bug 546396 has been marked as a duplicate of this bug. ***
*** Bug 546910 has been marked as a duplicate of this bug. ***
*** Bug 547279 has been marked as a duplicate of this bug. ***
*** Bug 548041 has been marked as a duplicate of this bug. ***
*** Bug 548824 has been marked as a duplicate of this bug. ***
*** Bug 548695 has been marked as a duplicate of this bug. ***
Bug 529773 may indicate that this is a problem with setting non-UTF-8 text as tooltip. All the strings in the (few) dups I looked at looked like they were valid, but maybe bugzilla/bug-buddy converted them automatically?
I guess the easiest way to track this down would be to add some utf8 validation where libgnomekbd sets tooltips
The tooltip text is not expected to be non-utf. How happened that the text is not an utf8? Do you have any ideas?
I tried the following test programme with the text from one of the stack traces: const char text[] = "Paris/Charles De Gaulle: Ciel dégagé"; char *latin_text, *escaped_text; latin_text = g_convert (text, strlen (text), "ISO-8859-1", "UTF-8", NULL, NULL, NULL); escaped_text = g_markup_escape_text (latin_text, strlen (latin_text)); and indeed it segfaults with the same trace: Program received signal SIGSEGV, Segmentation fault. 0xb76bb36e in append_escaped_text (str=0x8cae700, text=0x8cad868 "Paris/Charles De Gaulle: Ciel d�gag�", length=36) at gmarkup.c:2238 2238 next = g_utf8_next_char (p); (gdb) where
+ Trace 206558
which indicates that indeed it was invalid UTF-8. Now for the question as to how the invalid UTF-8 enters the application. There are dups for at least the keyboard indicator applet and the wheather applet. For the weather applet, "Ciel dégagé" is in fr.po as translation of "Clear Sky" from libgweather/weather.c:208. weather_conditions_string() returns a string from gettext; it being not in UTF-8 would mean that bind_textdomain_codeset() has not been called for the gweather domain. In fact, in libgweather there is no call to it... but neither to bindtextdomain. Since the string IS translated in the crash, someone must have called bindtextdomain for this domain, but I have been unable to find any callers in gnome-panel or gnome-applets... The same might be the case for the keyboard applet; the only bindtextdomain/bind_textdomain_codeset calls in libgnomekbd are in the capplet and test programmes, but not in the applet in gnome-applets.
I guess it is already fixed in CVS. Check new libxklavier please. *** This bug has been marked as a duplicate of 529773 ***
svu: There are dups also from the weather applet, so this can't have been fixed in libxklavier uniquely.
I suspect the common cause is that gtk+ (or glib) has become more fragile, suddenly exposing this class of bug. In both cases the libraries have exported non-utf-8 strings due to i18n subtleties and that string has been passed by the applet to the exclusively-utf-8 set_tooltip_text function which then chokes. I think svu is absolutely right in identifying the fix, but its the sort of easy-to-make error that is occurring elsewhere.
I totally agree with Callum. But I guess high fragility of gtk+ is a good thing in that case - it exposes innaccuracies which have to be fixed anyway.
My point was that since the weather applet bugs about set_tooltip_text were dup'd to this one, this bug is not fixed by a libgnomekbd bugfix. The weather applet still needs to be fixed.
In that case, may be the weather bug should be "unduped", shouldn't it?
GTK+ has not become more fragile. Passing non-utf8 strings to functions that are documented as only expecting utf8 has always had the possible consequence of a crash. And always will, since the alternative, validating every string on every entry point, is prohibitively expensive.
Matthias: it wasn't meant as a criticism of GTK+, it is quite clear where the bug is, I was merely speculating as to why the bugs seem to be appearing simultaneously. The bug (in libxklavier at least) shouldn't be new - so whatever was hiding it has gone away. A code change or a compiler change is one such possibility. As svu points out, this is a good thing. chpe: The bad duping is unfortunate, but there are open bugs for the libgweather problem (535865 is the "root-cause" one) so it'll probably all work out OK.
*** Bug 553685 has been marked as a duplicate of this bug. ***
*** Bug 553754 has been marked as a duplicate of this bug. ***
*** Bug 556722 has been marked as a duplicate of this bug. ***
*** Bug 556962 has been marked as a duplicate of this bug. ***
*** Bug 556362 has been marked as a duplicate of this bug. ***
*** Bug 543290 has been marked as a duplicate of this bug. ***
*** Bug 500230 has been marked as a duplicate of this bug. ***
*** Bug 559124 has been marked as a duplicate of this bug. ***
*** Bug 560091 has been marked as a duplicate of this bug. ***
*** Bug 550950 has been marked as a duplicate of this bug. ***
*** Bug 558770 has been marked as a duplicate of this bug. ***
*** Bug 528486 has been marked as a duplicate of this bug. ***
*** Bug 550951 has been marked as a duplicate of this bug. ***
*** Bug 561291 has been marked as a duplicate of this bug. ***
*** Bug 562418 has been marked as a duplicate of this bug. ***
*** Bug 563387 has been marked as a duplicate of this bug. ***
*** Bug 563383 has been marked as a duplicate of this bug. ***
*** Bug 572019 has been marked as a duplicate of this bug. ***
*** Bug 572012 has been marked as a duplicate of this bug. ***
*** Bug 572411 has been marked as a duplicate of this bug. ***
*** Bug 572398 has been marked as a duplicate of this bug. ***
*** Bug 572699 has been marked as a duplicate of this bug. ***
*** Bug 573022 has been marked as a duplicate of this bug. ***
*** Bug 573632 has been marked as a duplicate of this bug. ***
*** Bug 573611 has been marked as a duplicate of this bug. ***
*** Bug 574613 has been marked as a duplicate of this bug. ***
*** Bug 574832 has been marked as a duplicate of this bug. ***
*** Bug 574837 has been marked as a duplicate of this bug. ***
*** Bug 574902 has been marked as a duplicate of this bug. ***
*** Bug 574903 has been marked as a duplicate of this bug. ***
*** Bug 574904 has been marked as a duplicate of this bug. ***
*** Bug 574905 has been marked as a duplicate of this bug. ***
*** Bug 576007 has been marked as a duplicate of this bug. ***
*** Bug 579629 has been marked as a duplicate of this bug. ***
*** Bug 580393 has been marked as a duplicate of this bug. ***
*** Bug 582365 has been marked as a duplicate of this bug. ***