GNOME Bugzilla – Bug 598502
crash while doing stuff
Last modified: 2009-10-23 17:29:30 UTC
Shell crashes when I enter the overview. ERROR:gi/object.c:790:object_instance_finalize: assertion failed: (priv->gobj->ref_count > 0) Shell killed with signal 6 Started sometime after updating to git today.
Almost certainly fixed by commit d705c1bb5277712ee84e197ae68e4b98cd34f6f5
You know what they say about almost...
Created attachment 145636 [details] bt
Created attachment 145900 [details] [review] [ShellApp] Disconnect from window signal handlers when removing a window We need to remove all of our signal handlers attached to a window when being disposed.
*** Bug 599070 has been marked as a duplicate of this bug. ***
Comment on attachment 145900 [details] [review] [ShellApp] Disconnect from window signal handlers when removing a window > g_object_unref (window); > app->windows = g_slist_remove (app->windows, window); >+ g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_unmanaged), app); >+ g_signal_handlers_disconnect_by_func (window, G_CALLBACK(shell_app_on_user_time_changed), app); would be better to remove the handlers before unreffing it >+ while (app->windows) >+ _shell_app_remove_window (app, app->windows->data); >+ g_slist_free (app->windows); >+ app->windows = NULL; The last two lines are no-ops now
I've been running with the attachment in comment #4 for about eight hours without crashes.
Created attachment 146117 [details] [review] [ShellApp] Ignore removal of windows we're not interested in Previously shell_app_remove_window assumed that it was being passed a window in its list; rather than having callers check whether a window is interesting and only if so removing it from the app, just ignore removal of windows we aren't interested in, like how we ignore addition of windows we already have.
Attachment 146117 [details] pushed as d9ff1f2 - [ShellApp] Ignore removal of windows we're not interested in