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 598502 - crash while doing stuff
crash while doing stuff
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
: 599070 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-10-14 22:44 UTC by William Jon McCann
Modified: 2009-10-23 17:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
bt (9.46 KB, text/plain)
2009-10-16 21:50 UTC, William Jon McCann
  Details
[ShellApp] Disconnect from window signal handlers when removing a window (1.42 KB, patch)
2009-10-20 21:46 UTC, Colin Walters
committed Details | Review
[ShellApp] Ignore removal of windows we're not interested in (1.17 KB, patch)
2009-10-23 17:19 UTC, Colin Walters
committed Details | Review

Description William Jon McCann 2009-10-14 22:44:50 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.
Comment 1 Colin Walters 2009-10-15 18:54:15 UTC
Almost certainly fixed by commit d705c1bb5277712ee84e197ae68e4b98cd34f6f5
Comment 2 William Jon McCann 2009-10-16 21:49:17 UTC
You know what they say about almost...
Comment 3 William Jon McCann 2009-10-16 21:50:01 UTC
Created attachment 145636 [details]
bt
Comment 4 Colin Walters 2009-10-20 21:46:32 UTC
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.
Comment 5 Colin Walters 2009-10-20 21:47:37 UTC
*** Bug 599070 has been marked as a duplicate of this bug. ***
Comment 6 Dan Winship 2009-10-21 13:23:11 UTC
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
Comment 7 Jason Clinton 2009-10-21 15:29:42 UTC
I've been running with the attachment in comment #4 for about eight hours without crashes.
Comment 8 Colin Walters 2009-10-23 17:19:30 UTC
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.
Comment 9 Colin Walters 2009-10-23 17:29:27 UTC
Attachment 146117 [details] pushed as d9ff1f2 - [ShellApp] Ignore removal of windows we're not interested in