GNOME Bugzilla – Bug 671901
crash in history service
Last modified: 2012-03-13 13:19:27 UTC
Epiphany crashes reliably after adding a calendar event to egroupware (when the dialog popup is closed). GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `EphyEmbed' (gdb) bt full
+ Trace 229853
I guess that the dialog popup is being closed before the zoom level retrieval happens and by then the EphyEmbed requesting for it doesn't exist anymore..
Created attachment 209584 [details] [review] ephy-history-service: make the async API cancellable
Created attachment 209585 [details] [review] ephy-embed: cancel the pending history queries during finalize
There are probably other places where we should add a cancellable, but the second patch fixes at least this crasher in EphyEmbed.
Created attachment 209586 [details] [review] ephy-embed: cancel the pending history queries during finalize
Review of attachment 209584 [details] [review]: This looks good. As commented on jabber I'd explain somewhere (in the commit message or the file itself, not sure) that Read operations can be canceled both completely and in their notification phase, while Write operations can only be canceled in their notification phase (ie, a Write operation once queued will always be executed).
Review of attachment 209586 [details] [review]: OK. ::: embed/ephy-embed.c @@ -436,1 +437,5 @@ + if (priv->history_service_cancellable) { + g_cancellable_cancel (priv->history_service_cancellable); + g_object_unref (priv->history_service_cancellable); + priv->history_service_cancellable = NULL; You can use my new favorite function g_clear_object here, if you want.