Re: nautilus crashes on upgrade fc2->fc3 in gnome 2.8



On Mon, 2004-11-22 at 17:22 +0100, Alexander Larsson wrote:
> On Mon, 2004-11-15 at 14:52 +0100, Michal Žeravík wrote:
> > ** ERROR **: file nautilus-directory.c: line 553 (add_to_hash_table): 
> > assertion failed: (g_hash_table_lookup (directory->details->file_hash, 
> > file->details->relative_uri) == NULL)
> > aborting...

> Very strange. Does this happen for all directories? I.e. Can you try:
> nautilus --no-desktop /tmp

This is #153888 and I think I know what's going on there:
Drive and volume display names are made unique among themselves in
gnome-vfs but potentially stuffed in the same namespace (the desktop
directory) in nautilus_desktop_link_new_from_volume():

/* We try to use the drive name to get somewhat stable filenames
   for metadata */
drive = gnome_vfs_volume_get_drive (volume);
if (drive != NULL) {
	name = gnome_vfs_drive_get_display_name (drive);
} else {
	name = gnome_vfs_volume_get_display_name (volume);
}
gnome_vfs_drive_unref (drive);
link->details->filename = g_strconcat (name, ".volume", NULL);

This will trigger an assertion later on if you have a volume and a drive
with the same name visible on the desktop. You can reproduce it by
mounting a cdrom with the same name as an unmounted volume from your
fstab. Then mount the volume and you'll crash. From the bug it seems
like you can get similar results with funky network mounts.

I guess the easiest way to make the filenames unique is to append a
".drive" extension to the filename if you're using the drive name. The
computer method seems to do something similar.

Martin

? INSTALL
? install-sh
? missing
? mkinstalldirs
Index: libnautilus-private/nautilus-desktop-link.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-desktop-link.c,v
retrieving revision 1.8
diff -u -p -w -r1.8 nautilus-desktop-link.c
--- libnautilus-private/nautilus-desktop-link.c	10 Feb 2004 15:33:12 -0000	1.8
+++ libnautilus-private/nautilus-desktop-link.c	22 Nov 2004 20:58:04 -0000
@@ -209,12 +209,13 @@ nautilus_desktop_link_new_from_volume (G
 	drive = gnome_vfs_volume_get_drive (volume);
 	if (drive != NULL) {
 		name = gnome_vfs_drive_get_display_name (drive);
+		link->details->filename = g_strconcat (name, ".drive", NULL);
 	} else {
 		name = gnome_vfs_volume_get_display_name (volume);
+		link->details->filename = g_strconcat (name, ".volume", NULL);
 	}
 	gnome_vfs_drive_unref (drive);
 	
-	link->details->filename = g_strconcat (name, ".volume", NULL);
 	g_free (name);
 	
 	link->details->display_name = gnome_vfs_volume_get_display_name (volume);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]