GNOME Bugzilla – Bug 537740
crash in Empathy Instant Messenger: testing probably bad bui...
Last modified: 2008-12-01 23:36:47 UTC
Version: 0.23.3 What were you doing when the application crashed? testing probably bad build of empathy 0.23.3 on Fedora 9 Distribution: Fedora release 9 (Sulphur) Gnome Release: 2.22.2 2008-05-28 (Red Hat, Inc) BugBuddy Version: 2.22.0 System: Linux 2.6.25.4-30.fc9.i686 #1 SMP Wed May 21 18:12:35 EDT 2008 i686 X Vendor: The X.Org Foundation X Vendor Release: 10499901 Selinux: Enforcing Accessibility: Disabled GTK+ Theme: Nodoka Icon Theme: Fedora Memory status: size: 51552256 vsize: 51552256 resident: 20525056 share: 13086720 rss: 20525056 rss_rlim: 4294967295 CPU usage: start_time: 1213171109 rtime: 53 utime: 45 stime: 8 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/empathy' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xb7f66730 (LWP 3976)] 0x00110416 in __kernel_vsyscall ()
+ Trace 200106
Thread 1 (Thread 0xb7f66730 (LWP 3976))
----------- .xsession-errors (2593 sec old) --------------------- ** (empathy:7055): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:7055): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:7055): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:7055): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:7055): DEBUG: mission_control_get_tpconnection: MC not running. (gnome-terminal:3343): Vte-WARNING **: Nedefinována žádná obsluha pro řídicí sekvenci `device-control-string'. (gnome-terminal:3343): Gtk-CRITICAL **: gtk_widget_get_parent: assertion `GTK_IS_WIDGET (widget)' failed (gnome-terminal:3343): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkLabel' (gnome-terminal:3343): Gtk-CRITICAL **: gtk_label_set_text: assertion `GTK_IS_LABEL (label)' failed (gnome-terminal:3343): Gtk-CRITICAL **: gtk_widget_set_tooltip_text: assertion `GTK_IS_WIDGET (widget)' failed --------------------------------------------------
And I have this on stderr: [matej@viklef tmp]$ empathy ** (empathy:3976): DEBUG: mission_control_get_presence_actual: MC not running. ** (empathy:3976): DEBUG: mission_control_get_presence_message_actual: MC not running. ** (empathy:3976): DEBUG: mission_control_get_online_connections: MC not running. ** (empathy:3976): DEBUG: mission_control_get_connection_status: MC not running. ** (empathy:3976): DEBUG: mission_control_get_connection_status: MC not running. ** (empathy:3976): DEBUG: mission_control_get_connection_status: MC not running. ** (empathy:3976): DEBUG: mission_control_get_connection_status: MC not running. ** (empathy:3976): DEBUG: mission_control_get_connection_status: MC not running. ** (empathy:3976): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:3976): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:3976): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:3976): DEBUG: mission_control_get_tpconnection: MC not running. ** (empathy:3976): DEBUG: mission_control_get_tpconnection: MC not running. Could not find the frame base for "IA__g_spawn_command_line_sync". Could not find the frame base for "__regexec". Could not find the frame base for "IA__g_object_new". Could not find the frame base for "IA__g_cclosure_marshal_VOID__OBJECT". Could not find the frame base for "IA__g_signal_emit". Could not find the frame base for "IA__g_cclosure_marshal_VOID__VOID". Could not find the frame base for "IA__g_signal_emit". Could not find the frame base for "emit_activate_signal". Could not find the frame base for "gtk_status_icon_button_press". Could not find the frame base for "_gtk_marshal_BOOLEAN__BOXED". Could not find the frame base for "IA__g_signal_emit". Could not find the frame base for "gtk_widget_event_internal". Could not find the frame base for "IA__gtk_widget_event". Could not find the frame base for "IA__gtk_propagate_event". Could not find the frame base for "IA__gtk_main_do_event". Could not find the frame base for "gdk_event_dispatch". Could not find the frame base for "g_main_context_iterate". Could not find the frame base for "IA__g_spawn_sync". [matej@viklef tmp]$
I can't reproduce your crash. Could you add at line 161 of empathy-utils.c (before the regexec call) that line: g_print ("str=%s offset=%d\n", msg+offset, offset); Then compile and run empathy again and see what it prints when you reproduce the bug. Thanks.
Created attachment 112612 [details] empathy logfile see bug 537981 for new crash
*** Bug 537981 has been marked as a duplicate of this bug. ***
*** Bug 540688 has been marked as a duplicate of this bug. ***
To make this stale bug a little alive (still reproducible on the current Rawhide) I have made some tests. First of all, I use empathy from git/master, and these telepathy packages: [matej@viklef tmp]$ rpm -qa \*telepathy\* telepathy-glib-devel-0.7.17-1.fc10.i386 telepathy-stream-engine-0.5.3-2.fc10.i386 telepathy-mission-control-4.67-1.fc10.i386 telepathy-gabble-0.7.12-1.fc10.i386 telepathy-gabble-debuginfo-0.7.12-1.fc10.i386 telepathy-stream-engine-debuginfo-0.5.3-2.fc10.i386 telepathy-mission-control-debuginfo-4.67-1.fc10.i386 telepathy-mission-control-devel-4.67-1.fc10.i386 telepathy-glib-0.7.17-1.fc10.i386 telepathy-idle-0.1.2-3.fc9.i386 telepathy-salut-debuginfo-0.3.5-1.fc10.i386 libtelepathy-devel-0.3.3-1.fc9.i386 telepathy-haze-debuginfo-0.2.1-1.fc10.i386 telepathy-idle-debuginfo-0.1.2-3.fc9.i386 telepathy-haze-0.2.1-1.fc10.i386 telepathy-filesystem-0.0.1-2.fc8.noarch telepathy-salut-0.3.5-1.fc10.i386 telepathy-glib-debuginfo-0.7.17-1.fc10.i386 libtelepathy-0.3.3-1.fc9.i386 libtelepathy-debuginfo-0.3.3-1.fc9.i386 [matej@viklef tmp]$ I tried to run empathy in gdb and this is the record of the session: [matej@viklef redhat]$ gdb empathy GNU gdb Fedora (6.8-24.fc10) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... (gdb) break empathy_regexp_match Function "empathy_regexp_match" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (empathy_regexp_match) pending. (gdb) run Starting program: /usr/bin/empathy [Thread debugging using libthread_db enabled] [New Thread 0xb7fc9b60 (LWP 12600)] Program received signal SIGSEGV, Segmentation fault. 0x004cc4ad in __regexec (preg=<value optimized out>, string=Could not find the frame base for "__regexec". ) at regexec.c:246 246 __libc_lock_lock (dfa->lock); Missing separate debuginfos, use: debuginfo-install samba.i386 (gdb) thread apply all bt
+ Trace 209323
Thread 1 (Thread 0xb7fc9b60 (LWP 12600))
The program is running. Exit anyway? (y or n) y [matej@viklef redhat]$ pkill -f telepathy [matej@viklef redhat]$ gdb empathy GNU gdb Fedora (6.8-24.fc10) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... (gdb) break empathy-utils.c:138 No source file named empathy-utils.c. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (empathy-utils.c:138) pending. (gdb) run Starting program: /usr/bin/empathy [Thread debugging using libthread_db enabled] [New Thread 0xb7fc9b60 (LWP 12640)] Breakpoint 1, empathy_regex_match (type=EMPATHY_REGEX_ALL, msg=0x82e74f0 "This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.", start=0x82a9160, end=0x82a8f18) at empathy-utils.c:138 138 ret = regexec (&dingus[type], msg + offset, 1, matches, 0); Missing separate debuginfos, use: debuginfo-install samba.i386 (gdb) print type $1 = EMPATHY_REGEX_ALL (gdb) print &dingus[type] $2 = (regex_t *) 0x195be0 (gdb) print dingus[type] $3 = {__buffer = 0x0, __allocated = 0, __used = 0, __syntax = 136955496, __fastmap = 0x829c528 "", __translate = 0x0, re_nsub = 0, __can_be_null = 0, __regs_allocated = 0, __fastmap_accurate = 0, __no_sub = 0, __not_bol = 0, __not_eol = 0, __newline_anchor = 0} (gdb) break empathy-utils.c:161 Breakpoint 2 at 0x1809a1: file empathy-utils.c, line 161. (gdb) cont Continuing. Breakpoint 2, empathy_regex_match (type=EMPATHY_REGEX_ALL, msg=0x82e74f0 "This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.", start=0x82a9160, end=0x82a8f18) at empathy-utils.c:161 161 ret = regexec (&dingus[i], msg + offset, 1, matches, 0); (gdb) print i $4 = 0 (gdb) print &dingus[i] $5 = (regex_t *) 0x195b40 (gdb) print dingus[i] $6 = {__buffer = 0x82e7430 "", __allocated = 140, __used = 140, __syntax = 4436732, __fastmap = 0x82e96a8 "", __translate = 0x0, re_nsub = 5, __can_be_null = 0, __regs_allocated = 0, __fastmap_accurate = 1, __no_sub = 0, __not_bol = 0, __not_eol = 0, __newline_anchor = 0} (gdb) cont Continuing. Breakpoint 2, empathy_regex_match (type=EMPATHY_REGEX_ALL, msg=0x82e74f0 "This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.", start=0x82a9160, end=0x82a8f18) at empathy-utils.c:161 161 ret = regexec (&dingus[i], msg + offset, 1, matches, 0); (gdb) print i $7 = 1 (gdb) print &dingus[i] $8 = (regex_t *) 0x195b60 (gdb) print dingus[i] $9 = {__buffer = 0x82e7fb8 "\220�-\bg", __allocated = 140, __used = 140, __syntax = 4436732, __fastmap = 0x82e7eb0 "", __translate = 0x0, re_nsub = 3, __can_be_null = 0, __regs_allocated = 0, __fastmap_accurate = 1, __no_sub = 0, __not_bol = 0, __not_eol = 0, __newline_anchor = 0} (gdb) cont Continuing. Breakpoint 2, empathy_regex_match (type=EMPATHY_REGEX_ALL, msg=0x82e74f0 "This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.", start=0x82a9160, end=0x82a8f18) at empathy-utils.c:161 161 ret = regexec (&dingus[i], msg + offset, 1, matches, 0); (gdb) print i,&dingus[i],dingus[i] $10 = {__buffer = 0x0, __allocated = 0, __used = 140, __syntax = 4436732, __fastmap = 0x0, __translate = 0x0, re_nsub = 0, __can_be_null = 0, __regs_allocated = 0, __fastmap_accurate = 0, __no_sub = 0, __not_bol = 0, __not_eol = 0, __newline_anchor = 0} (gdb) print i $11 = 2 (gdb) print &dingus[i] $12 = (regex_t *) 0x195b80 (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. 0x004cc4ad in __regexec (preg=<value optimized out>, string=Could not find the frame base for "__regexec". ) at regexec.c:246 246 __libc_lock_lock (dfa->lock); (gdb) print preg $13 = <value optimized out> (gdb) print &dingus[i] No symbol "i" in current context. (gdb) print i No symbol "i" in current context. (gdb) I have also generated tons of logs, which I attach. Isn't it possible to add some debugging prints to make sure, what actually is going on there?
Created attachment 122084 [details] one empathy log
Created attachment 122085 [details] another empathy log
Created attachment 122086 [details] idle log
Created attachment 122087 [details] full empathy backtrace
Any more ideas, what to do? Empathy should be a standard IM program for Fedora 11 (and thus maybe even RHEL6), so I would prefer to be able to help with bug triaging it.
Created attachment 122089 [details] [review] the only patch we have in Fedora src.rpm package
I have recompiled whole empathy (yesterday's git -- commit d74cf81371d8504b107cb5ce8ab64de095eaf0f1) with no optimalization and this is the resulting backtrace: Distribution: Fedora release 9.93 (Rawhide) Gnome Release: 2.24.1 2008-10-28 (Red Hat, Inc) BugBuddy Version: 2.24.1 System: Linux 2.6.27.4-68.fc10.i686 #1 SMP Thu Oct 30 00:49:42 EDT 2008 i686 X Vendor: The X.Org Foundation X Vendor Release: 10502000 Selinux: Enforcing Accessibility: Disabled GTK+ Theme: Nodoka Icon Theme: Fedora Memory status: size: 51449856 vsize: 51449856 resident: 20361216 share: 13799424 rss: 20361216 rss_rlim: 18446744073709551615 CPU usage: start_time: 1225992052 rtime: 56 utime: 46 stime: 10 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/empathy' [?1034h[Thread debugging using libthread_db enabled] [New Thread 0xb7ee8b60 (LWP 13575)] 0x00110416 in __kernel_vsyscall ()
+ Trace 209345
Thread 1 (Thread 0xb7ee8b60 (LWP 13575))
----------- .xsession-errors (48 sec old) --------------------- Varování správce oken: Attempt to perform window operation 20 on window none when operation 20 on none already in effect Varování správce oken: Attempt to perform window operation 20 on window none when operation 20 on none already in effect (gnome-terminal:11023): Vte-WARNING **: Nedefinována žádná obsluha pro řídicí sekvenci `device-control-string'. Varování správce oken: Attempt to perform window operation 20 on window none when operation 20 on none already in effect Varování správce oken: Attempt to perform window operation 20 on window none when operation 20 on none already in effect Varování správce oken: Attempt to perform window operation 20 on window none when operation 20 on none already in effect /usr/lib/gedit-2/plugins/snippets/WindowHelper.py:105: GtkWarning: _gtk_accel_group_detach: assertion `g_slist_find (accel_group->acceleratables, object) != NULL' failed self.window.remove_accel_group(accel_group) (gnome-terminal:13684): Vte-WARNING **: Nedefinována žádná obsluha pro řídicí sekvenci `device-control-string'. ** (nm-applet:6052): WARNING **: Unhandled setting secret type (write) 'vpn/secrets' : 'GHashTable_gchararray+gchararray_' (gnome-terminal:13684): Vte-WARNING **: Nedefinována žádná obsluha pro řídicí sekvenci `device-control-string'. --------------------------------------------------
Matej, this is not a full backtrace. Either type just `bt' or if you would like `by full' please apply this GDB patch: http://people.redhat.com/jkratoch/franz-glibc-prelink.patch (another possibility is to have all the system libraries non-prelink-ed) Sorry I still did not include/process this GDB patch.
opy of this problem, which I tried to debug from the glibc side of the things is https://bugzilla.redhat.com/show_bug.cgi?id=453284
(In reply to comment #14) > Matej, > this is not a full backtrace. if you mean comment 12, than this was produced by bug-buddy > Either type just `bt' or if you would like `by full' please apply this GDB > patch: ... so I haven't typed anything. > http://people.redhat.com/jkratoch/franz-glibc-prelink.patch Could I get i386 package of it? I don't feel like compiling gdb... > (another possibility is to have all the system libraries non-prelink-ed) > Sorry I still did not include/process this GDB patch. OK
With the upgraded gdb -- thanks Honzo: (gdb) thread apply all backtrace
+ Trace 209362
Thread 1 (Thread 0xb7fc9b60 (LWP 4941))
There is one more strange thing. When looking at the line
+ Trace 209363
I noticed that actually that NickServ @ Freenode password (which is it what it is) is incorrect. Obviously it should read "identify kyrios". Don't know if that's corruption caused by gdb, or it is really screwed up somewhere in the empathy/telepathy.
marking your patch as rejected as it's not a fix for this bug.
I changed that code to use GRegex. This bug is now obsolete. If you still get a crash please open a new bug with a new backtrace.
Yeah, it seems to be fixed. Yaj!!!!