fossfreedom / radio-browser

rhythmbox plugin to browse and play radio stations
GNU General Public License v3.0
49 stars 13 forks source link

Crashes Rhythmbox 3.3 after playing podcast and reopening Rhythmbox from background #18

Open wagafo opened 8 years ago

wagafo commented 8 years ago

This plugin is crashing Rhythmbox in my system. The steps to reproduce are:

1) Put rhythmbox to play a podcast, and minimize rhythmbox so that it gets to the background 2) You have to wait until the podcast finishes, pausing it or stopping it does not cause the bug, so suppose the podcast finishes. 3) Click on the appindicator to reopen rhythmbox: it does not open and it crashes.

Please see: https://bugs.launchpad.net/ubuntu/+source/rhythmbox/+bug/1578260 There is a stacktrace there in case it may be useful.

My system: Description: Ubuntu 16.04 LTS Release: 16.04

If I disable the plugin I cannot reproduce.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34186183-crashes-rhythmbox-3-3-after-playing-podcast-and-reopening-rhythmbox-from-background?utm_campaign=plugin&utm_content=tracker%2F1944353&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1944353&utm_medium=issues&utm_source=github).
fossfreedom commented 8 years ago

Very odd.

To debug try adding a # in front of the "From radio_browser_source" in radio_browser.py

This comments this line out and stops it executing

If this works, debug further by uncommenting that line but this time commenting out various imports upto line 58 of radio_browser_source.py

wagafo commented 8 years ago

I commented out line 33 of radio-browser.py: from radio_browser_source import RadioBrowserSource and rhythmbox does not crash any more.

I will try now commenting the other lines, it takes a while as I have to play a complete podcast to reproduce the crash.

Should I comment out all the lines that say import or only these ones?:

from radio_station import RadioStation

from record_process import RecordProcess

from feed import Feed

from icecast_handler import FeedIcecast

from shoutcast_handler import FeedShoutcast

from shoutcast_handler import ShoutcastRadioStation

from board_handler import FeedBoard

from board_handler import BoardHandler

from radiotime_handler import FeedRadioTime

from radiotime_handler import FeedRadioTimeLocal

wagafo commented 8 years ago

Commenting out only the lines above I could reproduce the crash again, should I comment out all lines that say "import" until line 58?

fossfreedom commented 8 years ago

You could comment out 50% of all the lines ... Both 'from ' and 'import'

If it still crashes then the issue is in the remaining 50%. So you could then comment out 50% of the remaining. This binary chop way of debugging means you can find the issue in just a handful of tries.

wagafo commented 8 years ago

I can reproduce the crash even if I comment out ALL lines that say "import" until line 58 of radio_browser_source.py

wagafo commented 8 years ago

I've been doing more trials, and now I get the crash even if I comment out the line the "From radio_browser_source" in radio_browser.py.

wagafo commented 8 years ago

Sorry, ignore the previous message, after some more trials it is clear that commenting out the line the "From radio_browser_source" in radio_browser.py eliminates the crash. I will look more carefully into radio_browser_source.py to see if I can narrow down the culprit.