GNOME Bugzilla – Bug 337014
Nautilus crash when trying to eject an empty cd drive
Last modified: 2006-10-06 19:14:31 UTC
Steps to reproduce: 1. Right click on CD-device 2. Click "Eject" 3. Wait for error message and crash... Stack trace: Backtrace was generated from '/usr/bin/nautilus' Using host libthread_db library "/lib/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1492633936 (LWP 7844)] [New Thread -1583350880 (LWP 8861)] [New Thread -1503097952 (LWP 7852)] 0xffffe410 in __kernel_vsyscall ()
+ Trace 67414
Thread 2 (Thread -1583350880 (LWP 8861))
Other information:
cannot reproduce with CVS head. what version of hal is installed on your system?
sys-apps/hal-0.5.7 with some extra patches from Gentoo devs.
hal 0.5.8 here seems to be a gnome-vfs problem, changing product
the MountInfoThread's argv is NULL if none of "/sbin/umount", "/bin/umount", "/usr/sbin/umount", "/usr/bin/umount" could be found in the unmount case. What is the output of which umount ?
amd@box770 ~ $ which umount /bin/umount
Thanks, that doesn't look suspicious. Maybe pumount is used. Where is it located? It would also be great if you could add the following code to libgnomevfs/gnome-vfs-volume-ops.c:(mount_unmount_operation), right above the pthread_create call: for (i = 0; i < 4; i++) { g_message ("got argv %d: %s", i, mount_info->argv[i]); }
Indeed it's weird... amd@box770 ~ $ which pumount /usr/bin/pumount In function: mount_unmount_operation libgnomevfs-Message: got argv 0: (null) libgnomevfs-Message: got argv 1: (null) libgnomevfs-Message: got argv 2: (null) libgnomevfs-Message: got argv 3: (null) [New Thread -1508213856 (LWP 29153)] gnome-mount 0.4
Priit: Thanks for your feedback. This is really odd... Maybe you could check back whether and if so how the find_command function is used, by replacing it with code similar to /* Returns the full path to the queried command */ static const char * find_command (const char **known_locations) { int i; for (i = 0; known_locations [i]; i++) { g_message ("checking known location %s", known_locations[i]); if (g_file_test (known_locations [i], G_FILE_TEST_IS_EXECUTABLE)) { g_message ("returning known location %s", known_locations[i]); return known_locations [i]; } } return NULL; }
Did also some other magic like g_message(%s, __FUNCTION__) and seems like this function doesn't even get called.
Created attachment 62904 [details] [review] Proposed patch Thanks for your extensive feedback!
Discussion: http://mail.gnome.org/archives/gnome-vfs-list/2006-April/msg00013.html
Doesn't crash, but noticed this when running under dbg. Note the zombie :) <snip> [Thread -1544127584 (LWP 23362) exited] [New Thread -1544127584 (LWP 23363)] gnome-mount 0.4 [Thread -1544127584 (zombie) exited] </snip>
Priit: gdb zombies are a well-known issue. Just ask google :). The proposed patch was committed to HEAD and to the 2.14 branch. I'm closing this bug report for now, thanks for your help.
*** Bug 338895 has been marked as a duplicate of this bug. ***
*** Bug 344997 has been marked as a duplicate of this bug. ***