GNOME Bugzilla – Bug 781444
Magnatune: Clicking 'download' does nothing, clicking it again crashes Rhythmbox
Last modified: 2018-05-24 19:28:08 UTC
I have a Magnatune account and use Rhythmbox to browse the tracks and listen to them. When I like an album I click download – and nothing happens. When I click download again, Rhythmbox crashes. It doesn't seem to make any difference if I click 'Download' in the menu bar or if I open the context menu of a track and click 'Download album'.
Thanks for taking the time to report this. Without a stack trace from the crash it's very hard to determine what caused it. Can you get us a stack trace? Please see https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces for more information on how to do so. When pasting a stack trace in this bug report, please reset the status of this bug report from NEEDINFO to its previous status. Thanks in advance!
Created attachment 350380 [details] stack trace I hope this is usable. Please tell me if I did something wrong or you need more information.
I can't reset the status of the bug report (I can only choose between NEEDINFO and RESOLVED).
There are 2 issues here as described by bug reporter: 1. Nothing happens when album is clicked. 2. Rhythmbox crashes on further clicks.
Created attachment 361140 [details] [review] magnatune: Show missing progress bar allowing cancellation Fixes issue [1] in the above comment.
The crash mentioned in [2] happens when 'Download Album' is clicked on an album, which is already downloading. Not sure what is expected here. When the same album is downloaded again after the completion of the previous download, the following 'File exists' error is encountered. Exception in thread Thread-1: Traceback (most recent call last):
+ Trace 238031
self.run()
self._target(*self._args, **self._kwargs)
track_out = Gio.file_new_for_uri(track_uri).create(Gio.FileCreateFlags.NONE, None)
Here, even a successful re-download is not replacing the old files. So, the following questions remain: 1. Should a sequential re-download replace the old ones ? Probably yes, as there is a chance that more tracks are added to the album recently. 2. Should a parallel download of the same album be allowed ? Probably no, as it doesn't make much sense.
Created attachment 361579 [details] [review] magnatune: Show missing progress bar allowing cancellation Use 'props.property_name' rather than 'set_property(property_name)'
Created attachment 361580 [details] [review] magnatune: allow replacing existing albums / tracks with newly downloaded ones Addresses issue [1] in comment #6
Created attachment 361581 [details] [review] magnatune: don't allow parallel album downloads Addresses issue [2] in comment #6
Original rhythmbox console crash message for reference: sys:1: Warning: invalid unclassed pointer in cast to 'RBAsyncCopy' sys:1: Warning: invalid cast from 'GtkStyleContext' to 'RBAsyncCopy' Segmentation fault (core dumped) Stack trace as in comment #2: (gdb) bt
+ Trace 238059
The first async copy object ( dl = RB.AsyncCopy() ) in the self.__copies list was replaced by a new object, with the second 'Download Album' click by the user, as below: self.__copies[audio_dl_uri] = dl But, the first async copy object was still active in GIO async calls, and hence the crash.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/1581.