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 761049 - crash in thumbnailing code
crash in thumbnailing code
Status: RESOLVED FIXED
Product: gnome-desktop
Classification: Core
Component: Thumbnail
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Desktop Maintainers
Desktop Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-01-24 17:12 UTC by Matthias Clasen
Modified: 2016-01-27 02:17 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
thumbnail factory: Disconnect signal handlers in finalize (3.81 KB, patch)
2016-01-24 17:12 UTC, Matthias Clasen
committed Details | Review

Description Matthias Clasen 2016-01-24 17:12:12 UTC
See downstream report here: https://bugzilla.redhat.com/show_bug.cgi?id=1293019
Comment 1 Matthias Clasen 2016-01-24 17:12:58 UTC
Created attachment 319612 [details] [review]
thumbnail factory: Disconnect signal handlers in finalize

We are seeing crashes in Fedora that point at the settings signal
handlers getting run after the thumbnail factory is finalized.
Explicitly disconnecting the handlers in finalize is the right
thing to do, anyway.
Comment 2 Colin Walters 2016-01-24 17:32:59 UTC
Review of attachment 319612 [details] [review]:

Didn't verify the signal connections, assuming that's right.  Just minor style suggestion, but feel free to commit as is too.

::: libgnome-desktop/gnome-desktop-thumbnail.c
@@ +951,3 @@
+      g_hash_table_destroy (priv->mime_types_map);
+      priv->mime_types_map = NULL;
+    }

g_clear_pointer (&priv->mime_types_map, g_hash_table_unref);

etc.  Since you're touching the code anyways.

@@ +963,3 @@
+  if (priv->disabled_types)
+    {
+      g_strfreev (priv->disabled_types);

Could also g_clear_pointer here.

@@ +976,3 @@
+                                            factory);
+      g_object_unref (priv->settings);
+      priv->settings = NULL;

g_clear_object (&priv->settings)
Comment 3 Matthias Clasen 2016-01-27 02:17:31 UTC
Attachment 319612 [details] pushed as f32c389 - thumbnail factory: Disconnect signal handlers in finalize