GNOME Bugzilla – Bug 438937
crash in modify_link_hash_table at nautilus-file.c:278
Last modified: 2007-10-21 21:32:20 UTC
Version: 2.18.1 What were you doing when the application crashed? From terminal, `gnome-open ftp://ftp.gnu.org/'. Nautilus ftp authentication dialog came up, I said connect. Browser window opened, then bug buddy shortly later. Browsing ftp://ftp.gnome.org/ seems to work. Maybe it's server specific? Distribution: 20070505-devel Gnome Release: 2.18.1 2007-04-23 (Gado) BugBuddy Version: 2.18.1 System: Linux 2.6.20.11-1 #1 SMP Thu May 3 07:21:08 PDT 2007 i686 X Vendor: The X.Org Foundation X Vendor Release: 70200000 Selinux: No Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: gnome Memory status: size: 82509824 vsize: 82509824 resident: 29831168 share: 17907712 rss: 29831168 rss_rlim: 4294967295 CPU usage: start_time: 1179334093 rtime: 148 utime: 140 stime: 8 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/nautilus' Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1228248880 (LWP 9575)] 0xb7efe410 in __kernel_vsyscall ()
+ Trace 134478
Thread 1 (Thread -1228248880 (LWP 9575))
----------- .xsession-errors (5657 sec old) --------------------- fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb41-f175-11d1-a392-00e0291f3959} not found fixme:devenum:DEVENUM_ICreateDevEnum_CreateClassEnumerator Category {cc7bfb46-f175-11d1-a392-00e0291f3959} not found ...Too much output, ignoring rest... --------------------------------------------------
If I go directly to a subdirectory, e.g. ftp://ftp.gnu.org/gnu/, then it works fine.
*** Bug 439276 has been marked as a duplicate of this bug. ***
Some more interesting info from quitting nautilus and then running directly: ** (nautilus:15414): CRITICAL **: nautilus_file_get_symbolic_link_target_uri: assertion `nautilus_file_is_symbolic_link (file)' failed Using gdb, I was able to find out that it's choking on the pub directory, which is a symlink to the current directory: $ ftp ftp.gnu.org Connected to ftp.gnu.org. ... ftp> ls p* 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. lrwxrwxrwx 1 0 0 1 Aug 05 2003 pub -> . 226 Directory send OK. Somehow this freaks out nautilus_file_is_symbolic_link, causing NULL to be returned to modify_link_hash_table as the target_uri. Subsequent call to g_hash_table_lookup_extended crashes when passed NULL as the lookup_key. It seems that GNOME_VFS_FILE_INFO_FIELDS_FLAGS (1<<2) is not set, but the flags are set to indicate a symlink. (gdb) p file->details->relative_uri $13 = 0xb2417550 "pub" (gdb) p /t file->details->info->valid_fields $11 = 11000000000001 (gdb) p file->details->info->flags $12 = GNOME_VFS_FILE_FLAGS_SYMLINK This causes nautilus_file_is_symbolic_link to return FALSE because nautilus_file_info_missing (file, GNOME_VFS_FILE_INFO_FIELDS_FLAGS) returns TRUE. So, it seems to be a bug in gnome-vfs that the flags member is valid, but the bit flag is set incorrectly. Or, nautilus_file_is_symbolic_link is doing the wrong thing with GNOME_VFS_FILE_INFO_FIELDS_FLAGS. You can trigger directly with `nautilus --no-desktop ftp://ftp.gnu.org/pub'.
This patch fixes it: http://svn.gnome.org/viewcvs/gnome-vfs?view=revision&revision=5330
Thanks for taking the time to report this bug. This particular bug has already been reported into our bug tracking system, but we are happy to tell you that the problem has already been fixed. It should be solved in the next software version. You may want to check for a software upgrade. *** This bug has been marked as a duplicate of 435823 ***