GNOME Bugzilla – Bug 512743
Applications with lists crash in libgail
Last modified: 2008-12-12 06:12:49 UTC
Steps to reproduce: 1. Run Streamtuner 2. Select Google Stations 3. Click on a folder Stack trace:
+ Trace 187164
Other information: Also affects gajim, likely other applications. Prints this message in the console: ** ERROR **: file gailtreeview.c: line 3755 (traverse_cells): assertion failed: (row_path != NULL) aborting...
When I run streamtuner at Ubuntu 7.10, it crashes in libpython2.5.so. Which platform did you run on?
Gentoo ~x86.
Found another crash when try to reproduce the crash (I can reproduce the crash in bugs' description too):
+ Trace 192640
The full trace I got: (gdb) p row_path $1 = (GtkTreePath *) 0x0 (gdb) p cell_info->cell_row_ref $2 = (GtkTreeRowReference *) 0x898bbc8 (gdb) p *cell_info->cell_row_ref $3 = {proxy = 0x89d9b98, model = 0x89d9b98, path = 0x0} (gdb) bt
+ Trace 210498
Probably because the treeview in GUI has been refreshed and our cache need to be update.
Turns out this is a multi-thread issue. gail_cell_add_state sometime emits a signal to at-spi-registryd and causes the thread is scheduled. So clean_cell_info get no chance to complete its job.
Created attachment 124488 [details] [review] patch
2008-12-12 Li Yuan <li.yuan@sun.com> * gailtreeview.c: Bug #512743. (gail_tree_view_changed_gtk): Clean cell before go through the info list, for "changed" signal could come before a "row-deleted". (clean_cell_info): Prevent the thread to be scheduled before clean_cell_info finish its job.