GNOME Bugzilla – Bug 537298
Nautilus freezes when trying to open Trash on the sidebar
Last modified: 2009-03-21 18:52:57 UTC
Please describe the problem: If you open Nautilus with root account, and click the Trash on the sidebar, it freezes. Steps to reproduce: 1. Get root rights 2. Open Nautilus 3. Click Trash on the sidebar Actual results: Nautilus freezes. Expected results: Open the Trash dir. Does this happen every time? Yes. Other information:
Thanks for taking the time to report this bug. Without a stack trace from the crash it's very hard to determine what caused it. Can you get us a stack trace? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
I can produce this bug, too
Ok, I'll add the requested backtrace as quick as possible.
I am so sorry but i can't get a stack trace with gdb. gdb does not give any information about this. I tried it as multithreaded and non-multithreded way. Additionally if it takes a little bit long whole system freezes. By the way, I am trying to get the trace as "root". So special circumstances is not working in here. I logged in root and tried it, there is no problem with that. If you open nautilus with sudo or with root rights it is happening. Is there any other way i can get stack trace?
One more unhappy user... In addition to experiencing the same bug, I can confirm that the free memory and swap space starts filling until the computer becomes unresponsive. So, I assume there is "memory leakage", too.
using "sudo dbus-launch nautilus" workaround the issue, in the buggy case gvfs is not started and nautilus seems to loop somewhere around nautilus_path_bar_update_path nautilus-pathbar.c
Marking dependency on bug 528600 per the last comment (the infinite loop in this case is happening as Nautilus spins forever trying to get to root on a GDummyFile). That might actually be the only necessary fix.
Verifying that the GLib fix solves this issue, however, I still think that the loop that's causing this is silly. We should stop after some sane number of iterations (a good guess would be MAX_PATH).
The loop looks legal to me, as walking up the tree until we get NULL is part of the GFile API contract. I'll close this as OBSOLETE.