After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 667037 - Crash when editing contacts
Crash when editing contacts
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: General
3.3.x
Other Linux
: High critical
: ---
Assigned To: empathy-maint
empathy-maint
Depends on:
Blocks:
 
 
Reported: 2011-12-30 16:56 UTC by Jeff Van Epps
Modified: 2012-01-17 08:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gdb bt at crash point (3.76 KB, text/plain)
2011-12-30 16:56 UTC, Jeff Van Epps
  Details
bt after empathy-gdb installed (9.91 KB, text/plain)
2011-12-31 14:50 UTC, Jeff Van Epps
  Details
bt (11.08 KB, text/plain)
2012-01-01 21:50 UTC, Jeff Van Epps
  Details
prints to console while running in gdb (15.75 KB, text/plain)
2012-01-01 21:51 UTC, Jeff Van Epps
  Details
empathy_pixbuf_avatar_from_individual_scaled_async: set an error if no avatar (1.67 KB, patch)
2012-01-16 14:39 UTC, Guillaume Desmottes
committed Details | Review
don't free content of the list returned by empathy_connection_aggregator_get_all_groups() (1.34 KB, patch)
2012-01-16 14:39 UTC, Guillaume Desmottes
committed Details | Review

Description Jeff Van Epps 2011-12-30 16:56:21 UTC
Created attachment 204351 [details]
gdb bt at crash point

Select a contact, edit, check box to assign it to a group, close, select a different contact, edit. Shows list of groups with corrupted names. Some time after this program will crash. I've reproduced this a few times. Ran it under gdb and got the attached stack. I've run it under eclipse and although I haven't always had reliable results doing that it looks to be under individual_view_query_cb() with gtk trying to free a hashtable. 

After I restart I am able to edit the contact it crashed on ... and it'll crash on the next one I edit.

Empathy 3.3.3 on Ubuntu 11.10 64-bit.
Comment 1 André Klapper 2011-12-30 22:38:50 UTC
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!
Comment 2 Jeff Van Epps 2011-12-31 14:50:34 UTC
Created attachment 204386 [details]
bt after empathy-gdb installed
Comment 3 Jeff Van Epps 2011-12-31 14:51:50 UTC
Done. Although it looks to me like a time-bomb kind of bug where the memory gets corrupted earlier so my guess is that the stack trace can only point you toward what part of memory got corrupted rather than which function did it.
Comment 4 André Klapper 2012-01-01 18:40:33 UTC
Can you get us a stack trace with debugging symbols for glib2 and gtk3?
Comment 5 Jeff Van Epps 2012-01-01 21:50:49 UTC
Created attachment 204430 [details]
bt
Comment 6 Jeff Van Epps 2012-01-01 21:51:21 UTC
Created attachment 204431 [details]
prints to console while running in gdb
Comment 7 Guillaume Desmottes 2012-01-16 10:57:44 UTC
I can reproduce; thanks for the bug report.
Comment 8 Guillaume Desmottes 2012-01-16 14:39:25 UTC
Created attachment 205365 [details] [review]
empathy_pixbuf_avatar_from_individual_scaled_async: set an error if no avatar

It's fair for the caller to expect the error the be set if the _finish()
function returns NULL.
Comment 9 Guillaume Desmottes 2012-01-16 14:39:51 UTC
Created attachment 205366 [details] [review]
don't free content of the list returned by empathy_connection_aggregator_get_all_groups()
Comment 10 Xavier Claessens 2012-01-17 06:18:14 UTC
+1
Comment 11 Guillaume Desmottes 2012-01-17 08:26:18 UTC
Attachment 205365 [details] pushed as 4da0bbd - empathy_pixbuf_avatar_from_individual_scaled_async: set an error if no avatar
Attachment 205366 [details] pushed as 40aba36 - don't free content of the list returned by empathy_connection_aggregator_get_all_groups()