GNOME Bugzilla – Bug 614544
If you delete an empty folder with an emblem, and then try to open your trash nautilus hangs
Last modified: 2010-09-27 15:22:17 UTC
How to reproduce this bug: * Create new empty folder on desktop * Click Properties > Emblems on this folder * Add any emblem (for example "Draft") * Move this folder to trash * Click the trash icon on the bottom panel Nautilus will hang and will not display trash contents
Created attachment 157664 [details] backtrace
I forgot to add the downstream bug, https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/553082
This is an endless loop in gdaemonfileenumerator.c/ g_daemon_file_enumerator_dbus_filter() ....
+ Trace 221201
Created attachment 159083 [details] [review] proposed patch This patch will fix an endless loop by skipping invalid data. Still need to figure out who sends the garbage.
commited, but we need to figure out the real reason too
Created attachment 159881 [details] [review] Another patch fixing the real issue Ufff, took me really long until I figured this problem. Thanks to Milan Crha for useful clues.
Also a friendly warning - we may need to check for returned error in cases like this: if (!_g_dbus_message_iter_get_args (&variant_iter, NULL, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &strv, &n_elements, 0)) goto error; (notice the NULL for DBusError) As long as it's a centre of the universe (gvfs) it's important to be notified when we receive unexpected data on dbus. Ignoring the error and jumping out results in the particular file not being listed during enumeration at all. I only spotted this during debugging, the first chunk of the patch fixes the real issue, the second chunk is another fix.
Because this patch doesn't make nautilus showing files with emblems, we created a new bug #620259 for this issue. https://bugzilla.gnome.org/show_bug.cgi?id=620259
(In reply to comment #8) > Because this patch doesn't make nautilus showing files with emblems, we created > a new bug #620259 for this issue. > https://bugzilla.gnome.org/show_bug.cgi?id=620259 Have you tried applying both patches? The first one has been already committed and the other is still needed too. Works fine for me for the scenario described in bug 620259.
Could you post a link to this patch, I am not sure what patch you mean.
(In reply to comment #10) > Could you post a link to this patch, I am not sure what patch you mean. Please scroll down a little bit and then you'd see the "Attachments" table. The first patch was committed to master as 3d5cae7afed2f93f0c3a61526c2f3bf6a7b73842 some time ago.
Why don't you apply the second patch?
Committed the second patch to master. commit a9c0df8ba0c6f3003517c49099b241229f5b755e Author: Tomas Bzatek <tbzatek@redhat.com> Date: Mon Sep 27 17:17:20 2010 +0200 Fix stringv transfer over dbus The wrong iterator passed in caused some items to be silently dropped plus it led to string dup of wrong pointer. See bug 614544 for reference.