Bugzilla – Bug 16052
Some stations fail to play in 7.5, but play fine in 7.4 (bad stream headers)
Last modified: 2010-04-13 00:10:17 UTC
"Radio Sunshine" (Internet Radio/World/Find a City/Europe/Switzerland/Zürich/All Stations) wouldn't play any more. SBS is logging the following lines: [10-04-13 06:55:20.1970] main::init (323) Starting Squeezebox Server (v7.5.1, rTRUNK, UNKNOWN) perl 5.010000 [10-04-13 06:55:21.5776] Slim::Plugin::MusicMagic::Plugin::initPlugin (265) Can't connect to port 10002 - MusicIP disabled. [10-04-13 06:55:33.6284] Slim::Networking::IO::Select::__ANON__ (146) Error: Select task failed calling Slim::Networking::Async::HTTP::_http_read_body: Can't locate object method "tracks" via package "Slim::Schema::RemoteTrack" at /Users/mh/Documents/workspace/7.5/server/Slim/Schema/RemotePlaylist.pm line 50. ; fh=Slim::Networking::Async::Socket::HTTP=GLOB(0x10564f918) [10-04-13 06:55:33.9069] Slim::Networking::IO::Select::__ANON__ (146) Error: Select task failed calling Slim::Networking::Async::HTTP::_http_read_body: Can't locate object method "tracks" via package "Slim::Schema::RemoteTrack" at /Users/mh/Documents/workspace/7.5/server/Slim/Schema/RemotePlaylist.pm line 50. ; fh=Slim::Networking::Async::Socket::HTTP=GLOB(0x1056784f0) [10-04-13 06:55:34.9120] Slim::Networking::IO::Select::__ANON__ (146) Error: Select task failed calling Slim::Networking::Async::HTTP::_http_read_body: Can't locate object method "tracks" via package "Slim::Schema::RemoteTrack" at /Users/mh/Documents/workspace/7.5/server/Slim/Schema/RemotePlaylist.pm line 50. ; fh=Slim::Networking::Async::Socket::HTTP=GLOB(0x1056789b0)
Created attachment 6765 [details] more complete server log
I have also seen this. I think it is a combination of two separate issues. 1. Something that appears to be a playlist but actually just contains a chunk of raw text or HTML, is parsed as a playlist. 2. Because of 1, no tracks are found in the playlist and the Slim::Schema::RemoteTrack object is not promoted to a Slim::Schema::RemotePlaylist object, and consequently does not have a tracks() method.
Yes, this is an example of a station sending wma content in a stream with a text/plain MIME-type. The code need to also guess that such streams are WMA and not default to M3U. Also, there are a couple of places where the code could be better at protecting against such errors. In this specific case, the bad stream is actually and advertisment on the front of the stream. We don't play it anyway because it uses a codec we do not support.
== Auto-comment from SVN commit #30561 to the slim repo by ayoung == == http://svn.slimdevices.com/slim?view=revision&revision=30561 == Fixed bug 16052: Some stations fail to play in 7.5, but play fine in 7.4 (bad stream headers) Guess that streams whose URL ends '.wma' and with MIME-type 'text/plain' are actually WMA. Protect against a couple of cases of the consequences of making bad guesses.
Update hours