GNOME Bugzilla – Bug 328126
Eject fails and gives a blank error dialog
Last modified: 2006-01-24 12:49:58 UTC
Tried to eject a CD, got this on the command line: (rhythmbox:1121): GLib-CRITICAL **: g_str_has_prefix: assertion `str != NULL' failed closing And then the CD did not eject. And I got a blank error dialog, just the stop sign .
Backtrace was generated from '/home/gnome/bin/rhythmbox' Using host libthread_db library "/lib/libthread_db.so.1". `shared object read from target memory' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1208346944 (LWP 13663)] [New Thread 48348080 (LWP 4824)] [New Thread 132328368 (LWP 26466)] [New Thread 36330416 (LWP 13669)] [New Thread 57801648 (LWP 13665)] [New Thread 82652080 (LWP 13664)] 0x00e83402 in __kernel_vsyscall ()
+ Trace 65491
Thread 1 (Thread -1208346944 (LWP 13663))
I'd say that this is a gnome-vfs issue, since all RB does is call gnome_vfs_volume_eject with the GnomeVFSVolume of the audio cd. The error dialog is shown if the "suceeded" value of the callback is false, and it contains whatever gnome-vfs gives us for the error message.
Created attachment 57946 [details] [review] Initial work on fix This patch is a step on the way. It makes the "strange" hal volumes such as burn:/// and cdda:/// not be GNOME_VFS_VOLUME_TYPE_MOUNTPOINT. It requires more work to make sure blank cds (burn:) eject still works. Also, it needs testing.
Created attachment 57989 [details] [review] proposed patch Here's a patch to do this. Tested with blank discs, should also work with audio discs but I don't have any right here. Please review. Oh, if you're using gnome-mount you'll need a fix to hal to actually eject - get http://freedesktop.org/~david/20-storage-methods.fdi and put it in /usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi - no need to restart hald, just reinsert the disc.
I'd prefer a more general way for backends to allow them to implement eject and unmount, like a function pointer in the volume object. But this will do for now. Please commit.
Right. I've committed this patch. Thanks.