After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 315651 - rhythmbox crashes when unmounting iPod
rhythmbox crashes when unmounting iPod
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: general
0.9.x
Other Linux
: High critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-09-09 16:11 UTC by Sebastien Bacher
Modified: 2005-09-10 05:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
fix the issue (755 bytes, patch)
2005-09-09 19:39 UTC, Sebastien Bacher
committed Details | Review

Description Sebastien Bacher 2005-09-09 16:11:31 UTC
This bug has been opened here: http://bugzilla.ubuntu.com/show_bug.cgi?id=14978

"I'm on an updated breezy system, when I plug my iPod the system recognizes it
without problems and an icon of it appears normally in rhythmbox.
But when I try to unmount it rhythmbox crashes with this output:

(rhythmbox:11812): GLib-GObject-WARNING **: IA__g_object_get_valist: object
class `RBiPodSource' has no property named `db'

and appears an error windows "Unmount Error" "Unable to eject media" eject:
unable to eject, last error: Invalid argument

but it unmounts properly. 
It's an iPod Shuffle just initialized via iTunes 5
thanks
...
> Thanks for your bug. Could you get a backtrace of the crash? You can get it from
the bug-buddy dialog opened to send the bug upstream.
...
this is the gdb output of: gdb rhythmbox

(rhythmbox:17404): GLib-GObject-WARNING **: IA__g_object_get_valist: object
class `RBiPodSource' has no property named `db'

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1224952128 (LWP 17404)]
0x0000293a in ?? ()
(gdb) thread apply all bt full

Thread 1 (Thread -1224952128 (LWP 17404))

  • #0 ??
  • #1 rhythmdb_entry_delete_by_type
    at rhythmdb.c line 2110
  • #2 rb_ipod_unload_songs
    at rb-ipod-source.c line 414
  • #3 rb_ipod_unplugged
    at rb-ipod-source.c line 461
  • #4 rb_ipod_volume_unmounted_cb
    at rb-ipod-source.c line 572
  • #5 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_stop_emission
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 _gnome_vfs_volume_monitor_unmounted
  • #11 gnome_vfs_client_get_type
    from /usr/lib/libgnomevfs-2.so.0
  • #12 _ORBIT_skel_small_GNOME_VFS_Client_VolumeUnmounted
    from /usr/lib/libgnomevfs-2.so.0
  • #13 ORBit_POA_setup_root
    from /usr/lib/libORBit-2.so.0
  • #14 ORBit_OAObject_invoke
    from /usr/lib/libORBit-2.so.0
  • #15 ORBit_small_invoke_adaptor
    from /usr/lib/libORBit-2.so.0
  • #16 ORBit_POAObject_post_invoke
    from /usr/lib/libORBit-2.so.0
  • #17 ORBit_POAObject_post_invoke
    from /usr/lib/libORBit-2.so.0
  • #18 ORBit_POAObject_post_invoke
    from /usr/lib/libORBit-2.so.0
  • #19 g_child_watch_add
    from /usr/lib/libglib-2.0.so.0
  • #20 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #21 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #22 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #23 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #24 main
    at main.c line 303
    argDescrip = 0x0}, {longName = 0x80c454a "print-playing-track",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd4f0, val = 0,
    descrip = 0x80c4560 "Print the playing song track and exit",
    argDescrip = 0x0}, {longName = 0x80c4586 "print-playing-genre",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd4f4, val = 0,
    descrip = 0x80c459c "Print the playing song genre and exit",
    argDescrip = 0x0}, {longName = 0x80c45c2 "print-playing-path",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd4f8, val = 0,
    descrip = 0x80c45d8 "Print the playing song URI and exit",
    argDescrip = 0x0}, {longName = 0x80c45fc "print-song-length",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd520, val = 0,
    descrip = 0x80c4610 "Print the playing song length in seconds and exit",
    argDescrip = 0x0}, {longName = 0x80c4642 "print-play-time",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd51c, val = 0,
    descrip = 0x80c4654 "Print the current elapsed time of playing song and
exit", argDescrip = 0x0}, {longName = 0x80c468c "set-play-time",
    shortName = 0 '\0', argInfo = 3, arg = 0x80dd524, val = 0,
    descrip = 0x80c469c "Seek to the specified time in playing song if possible
and exit", argDescrip = 0x0}, {longName = 0x80c46dc "seek",
    shortName = 0 '\0', argInfo = 3, arg = 0x80dd528, val = 0,
    descrip = 0x80c46e4 "Seek by the specified amount if possible and exit",
    argDescrip = 0x0}, {longName = 0x80c4716 "set-rating", shortName = 0 '\0',
    argInfo = 9, arg = 0x80d7390, val = 0,
---Type <return> to continue, or q <return> to quit---
    descrip = 0x80c4724 "Set the rating of the currently playing song and exit",
argDescrip = 0x0}, {longName = 0x80c475a "play-pause", shortName = 0 '\0',
    argInfo = 0, arg = 0x80dd4fc, val = 0,
    descrip = 0x80c4765 "Toggle play/pause mode", argDescrip = 0x0}, {
    longName = 0x80c477c "pause", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd504, val = 0,
    descrip = 0x80c4784 "Pause playback if currently playing",
    argDescrip = 0x0}, {longName = 0x80c47a8 "play", shortName = 0 '\0',
    argInfo = 0, arg = 0x80dd500, val = 0,
    descrip = 0x80c47b0 "Resume playback if currently paused",
    argDescrip = 0x0}, {longName = 0x80c47d4 "focus", shortName = 0 '\0',
    argInfo = 0, arg = 0x80dd508, val = 0,
    descrip = 0x80c47da "Focus the running player", argDescrip = 0x0}, {
    longName = 0x80c47f3 "previous", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd50c, val = 0, descrip = 0x80c47fc "Jump to previous song",
    argDescrip = 0x0}, {longName = 0x80c4812 "next", shortName = 0 '\0',
    argInfo = 0, arg = 0x80dd510, val = 0,
    descrip = 0x80c4817 "Jump to next song", argDescrip = 0x0}, {
    longName = 0x80c4829 "shuffle", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd514, val = 0, descrip = 0x80c4831 "Toggle shuffling",
    argDescrip = 0x0}, {longName = 0x80c4842 "repeat", shortName = 0 '\0',
    argInfo = 0, arg = 0x80dd518, val = 0,
    descrip = 0x80c4849 "Toggle repeat", argDescrip = 0x0}, {
---Type <return> to continue, or q <return> to quit---
    longName = 0x80c4857 "set-volume", shortName = 0 '\0', argInfo = 8,
    arg = 0x80d7398, val = 0, descrip = 0x80c4862 "Set the volume level",
    argDescrip = 0x0}, {longName = 0x80c4877 "toggle-mute",
    shortName = 0 '\0', argInfo = 0, arg = 0x80dd52c, val = 0,
    descrip = 0x80c4883 "Mute or unmute playback", argDescrip = 0x0}, {
    longName = 0x80c489b "toggle-hide", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd530, val = 0,
    descrip = 0x80c48a8 "Change visibility of the main Rhythmbox window",
    argDescrip = 0x0}, {longName = 0x80c48d7 "debug", shortName = 100 'd',
    argInfo = 0, arg = 0x80dd4cc, val = 0,
    descrip = 0x80c48dd "Enable debugging code", argDescrip = 0x0}, {
    longName = 0x80c48f3 "no-update", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd4d8, val = 0, descrip = 0x80c48fd "Do not update the library",
    argDescrip = 0x0}, {longName = 0x80c4917 "no-registration",
    shortName = 110 'n', argInfo = 0, arg = 0x80dd4d4, val = 0,
    descrip = 0x80c4927 "Do not register the shell", argDescrip = 0x0}, {
    longName = 0x80c4941 "dry-run", shortName = 0 '\0', argInfo = 0,
    arg = 0x80dd4dc, val = 0,
    descrip = 0x80c494c "Don't save any data permanently (implies
--no-registration)", argDescrip = 0x0}, {longName = 0x80c4988 "rhythmdb-file",
    shortName = 0 '\0', argInfo = 1, arg = 0x80dd4e0, val = 0,
    descrip = 0x80c4996 "Path for database file to use", argDescrip = 0x0}, {
    longName = 0x80c49b4 "quit", shortName = 113 'q', argInfo = 0,
---Type <return> to continue, or q <return> to quit---
    arg = 0x80dd4d0, val = 0, descrip = 0x80c49b9 "Quit Rhythmbox",
    argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\0', argInfo = 4,
    arg = 0xb7c35460, val = 0, descrip = 0x80c49c8 "GStreamer",
    argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\0', argInfo = 0,
    arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}}
        __FUNCTION__ = "main""
Comment 1 Sebastien Bacher 2005-09-09 19:39:18 UTC
Created attachment 52027 [details] [review]
fix the issue

Christophe made this patch, fixes the issue according to the submitter
Comment 2 James "Doc" Livingston 2005-09-10 05:01:05 UTC
2005-09-10  James Livingston  <jrl@ids.org.au>

        Patch from Christophe Fergeau <teuf@gnome.org>

        * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
        the ipod code.