GNOME Bugzilla – Bug 386662
rhythmbox fails to update iTunesDB properly on ipod shuffle
Last modified: 2007-06-12 12:55:12 UTC
Please describe the problem: when i copy a song or 2 over to the shuffle, they copy. but i can't play them with the shuffle. this happens with stock edgy rhythmbox/libgpod & cvs rhythmbox/cvs libgpod. if i launch gtkpod it gives me this message (only gives message after it has been played with by rhythmbox) "iTunesDB '/media/ipod/iPod_Control/iTunes/iTunesDB' does not match checksum in extended information file '/media/ipod/iPod_Control/iTunes/iTunesDB.ext' gtkpod will try to match the information using MD5 checksums. This may take a long time." if i hit the sync button in gtkpod. then it fixes my shuffle and off i go to enjoy the music. Steps to reproduce: Actual results: Expected results: Does this happen every time? Yes Other information:
Created attachment 80096 [details] ipodtest.tar.bz2 This is a 3.8MB dump of data from every step of adding a song to an ipod shuffle with both itunes and rb and fixing it using gtkpod. I really hope this helps. There is a readme.txt file in the archive that should explain what the folders are as well as including some of my own thoughts about what is going on. I am sorry about the size on the archive which is due to my including a mp3 to make sure that is reproducible on a devs computer. I removed the mp3 from the music dirs of the itunes dumps for sake of space (before 15MB after 3.8). If you want the original dump, please request it and I will email it to you. I cannot attach a 15MB dump to bugzilla due to limits. Thanks to the RB devs for working on this. I really want this one fixed because it is a difficulty for my sister to switch to linux. Thanks again!
this is fixed for me in svn 4978.
Marking FIXED as per comment.
I don't think that this is fixed. The source was modified to save the shuffledb when an item is added. Not when it is removed. So if you remove items, they still play on the ipod until you add an item. I am attaching a patch that fixes this for me.
Created attachment 85384 [details] [review] A patch to make rb save the shuffledb on the removal of a track
Created attachment 85385 [details] [review] Alternative fix I think this patch should fix track removal on the shuffle as well, and imo it's cleaner to do it that way (this avoids duplicating the ipod database saving logic in 2 distinct places). Is that patch working? (I can't test it ;)
I have tested and verified that your patch works. :-) A lot cleaner than my patch. Thanks!
Marking the previous patch as obsolete then. Dunno if I can commit it or if I should wait for maintainer approval before doing so ;)
(and thanks William for the testing and for pointing out what was wrong ;)
Feel free to commit.
Committed
I didn't commit that patch to the stable branch since I had forgotten about it, but I guess this patch is good for that branch as well?
Yep, feel free to commit it to stable too.
Done.
Ok, I committed this patch to the 0.10 branch, but it depends on http://svn.gnome.org/viewcvs/rhythmbox/trunk/plugins/ipod/rb-ipod-source.c?r1=4871&r2=4977 which is only in trunk. Should I revert the 0.10 commit, or should I add this patch as well?
Hi..i posted in the launchpad section about this bug, but i was told to go to upstream. Anyway, I own an iPod shuffle, and downloaded and installed Rhythmbox 0.10.0. Instead of "copying" before i installed this version, not it simply closes or crashes. I looked in the import error under "library", and there is this Shuffle related error...(which only occurs when the Shuffle is synced) "~/iPod/iPod_Control/iTunes/iTunesControl" "GStreamer error: Failed to change state" is there a fix for this?...i would really like to get my Shuffle working under Ubuntu =/
For reference, the ubuntu bug is https://bugs.launchpad.net/ubuntu/+source/rhythmbox/+bug/68300
(In reply to comment #17) > For reference, the ubuntu bug is > https://bugs.launchpad.net/ubuntu/+source/rhythmbox/+bug/68300 > yes, i am aware of that, i posted there...but they said to post in "upstream" becuase the bug is trivial. Forgive me but i am a newbie to Ubuntu/Linux and its various communtiy support systems, but i dont know what or where upstream is...
I know you know ;) "upstream" is indeed this bugzilla, I added the link to the ubuntu bug tracker for other people reading this bug who may want to see what was said in your original ubuntu bug report. To clarify things a bit, with older rhythmbox, when you dragged and dropped a file to the shuffle, the file was copied to your ipod shuffle but didn't appear in your ipod shuffle user interface, with the latest version of rhythmbox, when you drag and drop a file to the shuffle, rhythmbox crashes?
yes, that is correct, that is exactly what happened. I've tried gtkpod, and songbird, and they both are incompatible with Shuffles(at least mine) but not other iPods..
Could you try to get a stacktrace with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
(In reply to comment #15) > Ok, I committed this patch to the 0.10 branch, but it depends on > http://svn.gnome.org/viewcvs/rhythmbox/trunk/plugins/ipod/rb-ipod-source.c?r1=4871&r2=4977 > which is only in trunk. Should I revert the 0.10 commit, or should I add this > patch as well? > After talking with doctau on IRC, I committed the patch linked above to the stable branch.
Created attachment 86341 [details] requested stacktrace of rhythmbox..
Ok...i just retreived a stacktrace from when rhythmbox crashed...hope this helps :)
it seems impl_paste is NULL while impl_can_paste is returning TRUE, which makes things crash at if (rb_source_can_paste (asource)) rb_source_paste (asource, entries); The iPod source doesn't set impl_paste on its own, I assume it will use the implementation defined by the parent classes. rb-removable-media-source.c doesn't set impl_paste if ENABLE_TRACK_TRANSFER isn't set, but in that case, the iPod source should return false in rb_source_can_paste (iPod writing should be disabled if track transfer is disabled). In short, I can't figure out how what you observe can happen ;) Can you check if the iPod plugin is properly enabled in the plugin preferences?
(In reply to comment #25) > it seems impl_paste is NULL while impl_can_paste is returning TRUE, which makes > things crash at > if (rb_source_can_paste (asource)) > rb_source_paste (asource, entries); > > The iPod source doesn't set impl_paste on its own, I assume it will use the > implementation defined by the parent classes. rb-removable-media-source.c > doesn't set impl_paste if ENABLE_TRACK_TRANSFER isn't set, but in that case, > the iPod source should return false in rb_source_can_paste (iPod writing should > be disabled if track transfer is disabled). > In short, I can't figure out how what you observe can happen ;) > Can you check if the iPod plugin is properly enabled in the plugin preferences? > Actually, since upgrading to Rhythmbox 0.10.1, there hasnt been a iPod plugin under "preferences" (before, there was)..today i reinstalled the libgpod packages along with others, but rhythmbox still crashed when attempting to use my iPod with rhythmbx..how do i get the iPod plugin to appear?
In Edit/Plugins, there should be an iPod plugin listed.
(In reply to comment #27) > In Edit/Plugins, there should be an iPod plugin listed. > Yes, there should be, but there isnt..It disappeared when i installed 0.10.0, i think, dont know why (or how, for that matter :P)
The problem is here with 0.10.0 on Ubuntu
Justin, did you install rhythmbox, libgpod, ... from source ? Sergey, which problem? shuffle content not properly updated, or crash on dnd ?
I installed standard ubuntu's rhythmbox with libgpod. The Ipod shuffle is recognized, the trackes are copied over. But they are not playable - till I do "mktunes" in the command line. Which means gnupod's database is not copied to the itunes database.
Ok, after checking with seb128, the patch to properly save the shuffle database wasn't backported in the ubuntu rhythmbox package, so rb versions earlier than 0.10.1 won't save the shuffle database. The only unsolved bug is Justin's crash, which I suspect is an installation problem. Justin, still there?
(In reply to comment #32) > Ok, after checking with seb128, the patch to properly save the shuffle database > wasn't backported in the ubuntu rhythmbox package, so rb versions earlier than > 0.10.1 won't save the shuffle database. > > The only unsolved bug is Justin's crash, which I suspect is an installation > problem. Justin, still there? > yeah, Im still here; Ive kinda just given up on rhythmbox as far as my shuffle is concerned...I found this program called shuffle-db, which does everything rhythmbox is supposed to do, but without a GUI (you just drag and drop into the folder, run shuffle-db.py, and off you go!)..
Ok, I'll close that bug then, if one day you give another try to rhythmbox and still encounter that bug, feel free to reopen it or to open a new bug :)