GNOME Bugzilla – Bug 325759
glade-2 crashes when deleting a widget
Last modified: 2008-04-22 23:51:01 UTC
Distribution: Debian testing/unstable Package: glade Severity: blocker Version: GNOME2.10.2 2.10.x Gnome-Distributor: Debian Synopsis: glade-2 crashes when deleting a widget Bugzilla-Product: glade Bugzilla-Component: general Bugzilla-Version: 2.10.x BugBuddy-GnomeVersion: 2.0 (2.10.1) Description: Description of the crash: Deleted a widget and them this shows up: ** ERROR **: file gailtreeview.c: line 3601 (garbage_collect_cell_data): assertion failed: (GAIL_IS_TREE_VIEW (data)) aborting... Steps to reproduce the crash: 1. 2. 3. Expected Results: How often does this happen? Additional Information: Debugging Information: Backtrace was generated from '/usr/bin/glade-2' (no debugging symbols found) Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1223743808 (LWP 7936)] (no debugging symbols found) 0xffffe410 in __kernel_vsyscall ()
+ Trace 64955
Thread 1 (Thread -1223743808 (LWP 7936))
------- Bug created by bug-buddy at 2006-01-04 12:04 -------
This was a gail bug, and has been fixed, so you need to update gail. *** This bug has been marked as a duplicate of 171965 ***
Damon, I believe you are in error here. The stack traces do not match. It crashes in g_assert_warning() which is caused by gail_tree_view_new () All critical warnings will cause a crash since 1/1/2006 Or am I mistaken?
*** Bug 325797 has been marked as a duplicate of this bug. ***
*** Bug 325889 has been marked as a duplicate of this bug. ***
The crashes are very similar, and it was an old version of GNOME, so I guessed it was probably the same bug. But the duplicates seem to be with newer versions of GNOME (and using Evolution rather than Glade), so maybe the gail maintainers should have a look.
Thanks for the bug report. Unfortunately, no stack trace is very useful in determining the cause of the crash. Can any of you get us one with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so.
*** Bug 329835 has been marked as a duplicate of this bug. ***
*** Bug 326493 has been marked as a duplicate of this bug. ***
This has to be some weird lifecycle thing; the assertion is coming from trying to instantiate a gail-tree-view for something that fails GTK_IS_TREE_VIEW. It's always in the add_child_watch code... ? As critical warnings go, this one seems appropriate. It should not be crashing things though, and certainly the crash behavior needs to be turned off in the stable branch of gnome-session. The assert in the stack traces doesn't match the initial bug report, by the way.
I don't understand how/why g_child_watch_add can be calling gail_tree_view_new(). Can anybody provide some insight here?
*** Bug 336953 has been marked as a duplicate of this bug. ***
*** Bug 337253 has been marked as a duplicate of this bug. ***
Apologies for spam... ensuring Sun a11y folks are cc'ed on all current accessibility bugs.
*** Bug 329702 has been marked as a duplicate of this bug. ***
The g_child_watch_add() is almost certainly really a g_idle_dispatch(). Since the library doesn't have symbols I guess gdb outputs the first public function it finds before the given address. If you look in glib/gmain.c g_idle_dispatch() is just after g_child_watch_add(). (You can also look at other bugs if you don't believe me, e.g. bug 337420). Similarly the gail_tree_view_new() is probably not the real function. Looking at the warning at the top of this bug I'd guess your garbage_collect_cell_data() idle function is the problem. I think I can see one possible problem. You sometimes call garbage_collect_cell_data() directly, and it sets tree_view->garbage_collection_pending = FALSE; But what if there really was a pending idle handler? If the treeview is destroyed now, any pending handler won't be removed, so you may get a crash.
The idle handler also needs to do GDK_THREADS_ENTER () / GDK_THREADS_LEAVE (). So basically you need to split garbage_collect_cell_data() into 2 functions, one that does the idle handler stuff and the other one that does the real work and can be called directly.
*** Bug 354131 has been marked as a duplicate of this bug. ***
*** Bug 349516 has been marked as a duplicate of this bug. ***
*** Bug 355526 has been marked as a duplicate of this bug. ***
*** Bug 339231 has been marked as a duplicate of this bug. ***
*** Bug 345764 has been marked as a duplicate of this bug. ***
Thanks Karsten. I'll have a closer look at this one today. And thanks Damon for the analysis and suggestion.
Created attachment 72689 [details] [review] patch based on Damon's suggestions
Patch committed - Damon and/or Karsten, please reopen if this does not solve your problem.
*** Bug 356338 has been marked as a duplicate of this bug. ***
*** Bug 356920 has been marked as a duplicate of this bug. ***
*** Bug 359308 has been marked as a duplicate of this bug. ***
*** Bug 360141 has been marked as a duplicate of this bug. ***
*** Bug 360218 has been marked as a duplicate of this bug. ***
*** Bug 360317 has been marked as a duplicate of this bug. ***
*** Bug 360326 has been marked as a duplicate of this bug. ***
*** Bug 360396 has been marked as a duplicate of this bug. ***
*** Bug 367019 has been marked as a duplicate of this bug. ***
*** Bug 367486 has been marked as a duplicate of this bug. ***
*** Bug 368307 has been marked as a duplicate of this bug. ***
*** Bug 370192 has been marked as a duplicate of this bug. ***
*** Bug 370193 has been marked as a duplicate of this bug. ***
*** Bug 371154 has been marked as a duplicate of this bug. ***
*** Bug 376521 has been marked as a duplicate of this bug. ***
*** Bug 376699 has been marked as a duplicate of this bug. ***
*** Bug 376754 has been marked as a duplicate of this bug. ***
*** Bug 376916 has been marked as a duplicate of this bug. ***
*** Bug 377641 has been marked as a duplicate of this bug. ***
*** Bug 378553 has been marked as a duplicate of this bug. ***
*** Bug 379018 has been marked as a duplicate of this bug. ***
*** Bug 380160 has been marked as a duplicate of this bug. ***
*** Bug 380431 has been marked as a duplicate of this bug. ***
*** Bug 380791 has been marked as a duplicate of this bug. ***
*** Bug 381047 has been marked as a duplicate of this bug. ***
*** Bug 381185 has been marked as a duplicate of this bug. ***
*** Bug 382632 has been marked as a duplicate of this bug. ***
*** Bug 382359 has been marked as a duplicate of this bug. ***
*** Bug 381394 has been marked as a duplicate of this bug. ***
*** Bug 378845 has been marked as a duplicate of this bug. ***
Are we sure these are all duplicates? A lot of them are quite recent. It looks like a different bug to me.
*** Bug 385333 has been marked as a duplicate of this bug. ***
*** Bug 384837 has been marked as a duplicate of this bug. ***
*** Bug 386190 has been marked as a duplicate of this bug. ***
i guess that bug 383760 comment 2 is another duplicate?
Which gail version are you using? Is there anyone using gail 1.9.3 or 1.9.4?
*** Bug 383760 has been marked as a duplicate of this bug. ***
*** Bug 393186 has been marked as a duplicate of this bug. ***
*** Bug 393723 has been marked as a duplicate of this bug. ***
*** Bug 395785 has been marked as a duplicate of this bug. ***
*** Bug 394217 has been marked as a duplicate of this bug. ***
*** Bug 394253 has been marked as a duplicate of this bug. ***
*** Bug 394581 has been marked as a duplicate of this bug. ***
*** Bug 396631 has been marked as a duplicate of this bug. ***
*** Bug 397263 has been marked as a duplicate of this bug. ***
*** Bug 401423 has been marked as a duplicate of this bug. ***
*** Bug 401380 has been marked as a duplicate of this bug. ***
*** Bug 401570 has been marked as a duplicate of this bug. ***
*** Bug 404418 has been marked as a duplicate of this bug. ***
*** Bug 404556 has been marked as a duplicate of this bug. ***
*** Bug 404520 has been marked as a duplicate of this bug. ***
*** Bug 403830 has been marked as a duplicate of this bug. ***
*** Bug 405464 has been marked as a duplicate of this bug. ***
*** Bug 405714 has been marked as a duplicate of this bug. ***
*** Bug 407121 has been marked as a duplicate of this bug. ***
*** Bug 407139 has been marked as a duplicate of this bug. ***
*** Bug 409834 has been marked as a duplicate of this bug. ***
*** Bug 412391 has been marked as a duplicate of this bug. ***
*** Bug 408226 has been marked as a duplicate of this bug. ***
*** Bug 416014 has been marked as a duplicate of this bug. ***
*** Bug 412516 has been marked as a duplicate of this bug. ***
*** Bug 420989 has been marked as a duplicate of this bug. ***
*** Bug 426719 has been marked as a duplicate of this bug. ***
*** Bug 426133 has been marked as a duplicate of this bug. ***
*** Bug 424009 has been marked as a duplicate of this bug. ***
*** Bug 423584 has been marked as a duplicate of this bug. ***
*** Bug 422155 has been marked as a duplicate of this bug. ***
*** Bug 420418 has been marked as a duplicate of this bug. ***
*** Bug 423796 has been marked as a duplicate of this bug. ***
*** Bug 412886 has been marked as a duplicate of this bug. ***
*** Bug 432698 has been marked as a duplicate of this bug. ***
*** Bug 438640 has been marked as a duplicate of this bug. ***
*** Bug 443792 has been marked as a duplicate of this bug. ***
*** Bug 462800 has been marked as a duplicate of this bug. ***
*** Bug 462920 has been marked as a duplicate of this bug. ***
*** Bug 461057 has been marked as a duplicate of this bug. ***
*** Bug 464226 has been marked as a duplicate of this bug. ***
*** Bug 472641 has been marked as a duplicate of this bug. ***
*** Bug 476756 has been marked as a duplicate of this bug. ***
*** Bug 477302 has been marked as a duplicate of this bug. ***
*** Bug 478543 has been marked as a duplicate of this bug. ***
*** Bug 482400 has been marked as a duplicate of this bug. ***