GNOME Bugzilla – Bug 77892
drag icon to trash=crash [or open trash for some people]
Last modified: 2004-12-22 21:47:04 UTC
Package: nautilus Severity: normal Version: 1.1.11 Synopsis: drag icon to trash=crash Bugzilla-Product: nautilus Bugzilla-Component: Trash BugBuddy-GnomeVersion: 2.0 (1.114.0) Description: Drag an item on the desktop background to the trash causes crash. Debugging Information: Backtrace was generated from '/home/jfleck/gnome/head/INSTALL/bin/nautilus' [New Thread 1024 (LWP 875)] [New Thread 2049 (LWP 876)] [New Thread 1026 (LWP 877)] [New Thread 2051 (LWP 878)] 0x40b6dca9 in __wait4 () from /lib/i686/libc.so.6
+ Trace 20453
------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-04-06 21:51 ------- Unknown version 1.1.x in product nautilus. Setting version to the default, "unspecified". Reassigning to the default owner of the component, nautilus-maint@bugzilla.gnome.org.
I saw this on the train to GUADEC but have been unable to reproduce since.
I guess that the original poster can't reproduce this now either. I guess it's fixed?
I'm still seeing this.
Does this happen with any file? I suspect that you have a file on the desktop or something with a "strange" name. It seems to die in the utf8 validation. Can you try to isolate the file that causes this?
It seems to happen with any arbitrarily chosen file. The following error message shows up on the console: Eel-ERROR **: file eel-vfs-extensions.c: line 662 (eel_format_uri_for_display_internal): assertion failed: (g_utf8_validate (uri, -1, NULL)) aborting This is a cvs build from this morning (both eel and Nautilus).
It would be interesting to know what uri didn't validate. Can you ad a printf("URI: %s\n", uri); to eel-vfs-extensions.c line 662, before the assert.
[jfleck@jelloiii jfleck]$ nautilus URI: file:///home/jfleck URI: file:///home/jfleck/.gnome-desktop URI: file:! Eel-ERROR **: file eel-vfs-extensions.c: line 663 (eel_format_uri_for_display_internal): assertion failed: (g_utf8_validate (uri, -1, NULL)) aborting... (the first being the window open to my "home", I assume, and the second being the desktop - the third is when I try to drag an icon to the trash) I'm guessing by the tone of your questions that you can't duplicate this, which suggests something odd about my setup. I'm using vbs, building to ~/gnome/head, with ~/nome/head/INSTALL/bin added to my path.
Identical error, identical output when I double-click on the trash to try to open it: see #77680 which I think was mistakenly marked a dupe of #77520.
bug 77680 was really two separate bugs; the first was a dup of bug 77520 but the second a dup of this one. I can't duplicate either one of these from jacob's snaps, FWIW. :/
*** Bug 82049 has been marked as a duplicate of this bug. ***
Now a duplicate from 1.1.16. Bumping to 2.0.0 but puntable if we can't fix.
Can you take a look at this, Michael?
John, can you go up several stack frames and do: $ p strlen (uri) $ p uri [0] $ p uri [1] $ p uri [2] ... until it prints a 0 for the value ? so we can see what is actually in the string :-)
caught it, just a silly assert in that method, re-factoring.
I managed to repeat this, by reverting my D&D URI fix, so we put unencoded (non UTF-8) URIs across, and managed to get a new window to open somehow when I dragged the file. It's un-repeatable in HEAD - I'm assuming it was fixed by the D&D fix - although that would not explain the crash on opening the trash. Also John the stack trace is pretty useless for debugging; if you can still repeat the bug with snapshots as of last night, can you post a full stack trace - the first 4 frames are always meaningless, and we need to be able to trace right back to main, most times. It looks like bug-buddy is barfing on some non-utf8 character in the string that gdb prints, so it's possible you'll have to run nautilus in gdb, type 'bt' when it crashes and post the full trace. Thanks.
oh, and I also moved the g_assert that blew further down that method, below the bit to handle locale encoded filename translation - since it was clearly broken where it was; should be in tommorrow's eel snapshot.
Reopening. I still get the crash when double-clicking on the trash icon to open trash. I don't get it any longer when dragging an item to the trash (though nothing happens when I drag an item to the trash - it doesn't go there). First the terminal spew: ** (nautilus:1398): WARNING **: [Invalid UTF-8] Possibly invalid new URI '! ' This can cause subtle evils like #48423 ** (nautilus:1398): WARNING **: activation failed: g_module_open of `libnautilus-history-view.so' failed with `/usr/lib/libnautilus.so.0: undefined symbol: TC_string_struct' ** (nautilus:1398): WARNING **: activation failed: g_module_open of `libnautilus-notes-view.so' failed with `/usr/lib/libnautilus.so.0: undefined symbol: TC_string_struct' ** (nautilus:1398): WARNING **: activation failed: g_module_open of `libnautilus-tree-view.so' failed with `/usr/lib/libnautilus.so.0: undefined symbol: TC_string_struct' ** (nautilus:1398): WARNING **: A view failed. The UI will handle this with a dialog but this should be debugged. ** (nautilus:1398): WARNING **: A view failed. The UI will handle this with a dialog but this should be debugged. ** (nautilus:1398): WARNING **: A view failed. The UI will handle this with a dialog but this should be debugged. Eel-ERROR **: file eel-vfs-extensions.c: line 681 (eel_format_uri_for_display_internal): assertion failed: (!canonical_uri || g_utf8_validate (canonical_uri, -1, NULL)) aborting... **************************************************** Now backtracish stuff: **************************************************** Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 22763
Thread 1024 (LWP 1398)
ok; I can repeat this if I put an invalid URI inside ~/.gnome-desktop/Trash - including OOB non-UTF-8 characters. Can you attach your ~/.gnome-desktop/Trash file ?
ok, got another fix for this then - pending Alex getting distcheck to pass for the monday snaps.
Created attachment 8930 [details] old Trash file that was causing the crash
As suggested, Michael, I'm attaching my old Trash file. Deleting it solved the problem.