Bugzilla – Bug 4201
Deselecting all genres in Random Mix creates invalid SQL query, stops SS
Last modified: 2008-12-18 11:11:39 UTC
In Browse -> Random Mix, "Select None" and then "Random songs/artists/..." stops the server with: 2006-09-23 14:58:19.0333 ERROR: Error executing 'SELECT me.id, me.url, me.content_type, me.title, me.titlesort, me.titlesearch, me.album, me.tracknum, me.timestamp, me.filesize, me.disc, me.thumb, me.remote, me.audio, me.audio_size, me.audio_offset, me.year, me.secs, me.cover, me.vbr_scale, me.bitrate, me.samplerate, me.samplesize, me.channels, me.block_alignment, me.endian, me.bpm, me.tagversion, me.drm, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable, me.musicbrainz_id, me.playcount, me.lastplayed, me.lossless, me.lyrics, me.rating, me.replay_gain, me.replay_peak FROM tracks me LEFT JOIN genre_track genreTracks ON ( genreTracks.track = me.id ) WHERE ( audio = ? AND genreTracks.genre IN ( ) ) ORDER BY RAND() LIMIT 10': DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ) ORDER BY RAND() LIMIT 10' at line 1 at /somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 771. 2006-09-23 14:58:19.0575 Backtrace: frame 0: Slim::Schema::Storage::throw_exception (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 773) frame 1: DBIx::Class::Storage::DBI::_execute (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 826) frame 2: DBIx::Class::Storage::DBI::_select (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI/Cursor.pm line 79) frame 3: DBIx::Class::Storage::DBI::Cursor::next (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Cursor.pm line 69) frame 4: DBIx::Class::Cursor::all (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI/Cursor.pm line 115) frame 5: DBIx::Class::Storage::DBI::Cursor::all (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/ResultSet.pm line 945) frame 6: DBIx::Class::ResultSet::all (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/ResultSet.pm line 143) frame 7: DBIx::Class::ResultSet::search (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/ResultSet.pm line 659) frame 8: DBIx::Class::ResultSet::slice (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 65) frame 9: Plugins::RandomPlay::Plugin::findAndAdd (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 301) frame 10: Plugins::RandomPlay::Plugin::playRandom (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 758) frame 11: Plugins::RandomPlay::Plugin::handleWebMix (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 796) frame 12: Plugins::RandomPlay::Plugin::handleWebSettings (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 811) frame 13: Slim::Web::HTTP::generateHTTPResponse (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 677) frame 14: Slim::Web::HTTP::processURL (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 523) frame 15: Slim::Web::HTTP::processHTTP (/somewhere/SlimServer_v6.5.0/Slim/Networking/Select.pm line 238) frame 16: Slim::Networking::Select::select (/somewhere/SlimServer_v6.5.0/slimserver.pl line 487) frame 17: main::idle (/somewhere/SlimServer_v6.5.0/slimserver.pl line 440) frame 18: main::main (/somewhere/SlimServer_v6.5.0/slimserver.pl line 1039) [...] Plugins/RandomPlay/Plugin.pm states: # Initialize find to only include user's selected genres. If they've deselected # all genres, this clause will be ignored by find, so all genres will be used. my $filteredGenres = getFilteredGenres($client); my $find = { 'genreTracks.genre' => { 'in' => $filteredGenres } }; However, this doesn't seem to be the case. Fix is trivial, but it might be a good idea to see if the behaviour expected in the comment is assumed anywhere else...
Another Random Mix issue: "LEFT JOIN genre_track genreTracks ON"-logic appears to be missing when using "Random years": 2006-09-23 23:14:41.2309 SELECT me.id, me.name, me.namesort, me.namesearch, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable FROM genres me: 2006-09-23 23:14:41.2617 SELECT me.id, me.name, me.namesort, me.namesearch, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable FROM genres me: 2006-09-23 23:14:41.2856 SELECT me.id, me.url, me.content_type, me.title, me.titlesort, me.titlesearch, me.album, me.tracknum, me.timestamp, me.filesize, me.disc, me.thumb, me.remote, me.audio, me.audio_size, me.audio_offset, me.year, me.secs, me.cover, me.vbr_scale, me.bitrate, me.samplerate, me.samplesize, me.channels, me.block_alignment, me.endian, me.bpm, me.tagversion, me.drm, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable, me.musicbrainz_id, me.playcount, me.lastplayed, me.lossless, me.lyrics, me.rating, me.replay_gain, me.replay_peak FROM tracks me WHERE ( ( ( genreTracks.genre = ? ) ) ): '14' 2006-09-23 23:14:41.2877 ERROR: Error executing 'SELECT me.id, me.url, me.content_type, me.title, me.titlesort, me.titlesearch, me.album, me.tracknum, me.timestamp, me.filesize, me.disc, me.thumb, me.remote, me.audio, me.audio_size, me.audio_offset, me.year, me.secs, me.cover, me.vbr_scale, me.bitrate, me.samplerate, me.samplesize, me.channels, me.block_alignment, me.endian, me.bpm, me.tagversion, me.drm, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable, me.musicbrainz_id, me.playcount, me.lastplayed, me.lossless, me.lyrics, me.rating, me.replay_gain, me.replay_peak FROM tracks me WHERE ( ( ( genreTracks.genre = ? ) ) )': DBD::mysql::st execute failed: Unknown column 'genreTracks.genre' in 'where clause' at /somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 771. 2006-09-23 23:14:41.2885 ERROR: Backtrace follows: 2006-09-23 23:14:41.2890 Backtrace: frame 0: Slim::Schema::Storage::throw_exception (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 773) frame 1: DBIx::Class::Storage::DBI::_execute (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 826) frame 2: DBIx::Class::Storage::DBI::_select (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/Storage/DBI.pm line 852) frame 3: DBIx::Class::Storage::DBI::select_single (/somewhere/SlimServer_v6.5.0/Slim/Schema/Storage.pm line 50) frame 4: Slim::Schema::Storage::select_single (/somewhere/SlimServer_v6.5.0/CPAN/DBIx/Class/ResultSet.pm line 509) frame 5: DBIx::Class::ResultSet::single (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 172) frame 6: Plugins::RandomPlay::Plugin::getRandomYear (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 291) frame 7: Plugins::RandomPlay::Plugin::playRandom (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 758) frame 8: Plugins::RandomPlay::Plugin::handleWebMix (/somewhere/SlimServer_v6.5.0/Plugins/RandomPlay/Plugin.pm line 796) frame 9: Plugins::RandomPlay::Plugin::handleWebSettings (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 811) frame 10: Slim::Web::HTTP::generateHTTPResponse (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 677) frame 11: Slim::Web::HTTP::processURL (/somewhere/SlimServer_v6.5.0/Slim/Web/HTTP.pm line 523) frame 12: Slim::Web::HTTP::processHTTP (/somewhere/SlimServer_v6.5.0/Slim/Networking/Select.pm line 238) frame 13: Slim::Networking::Select::select (/somewhere/SlimServer_v6.5.0/slimserver.pl line 487) frame 14: main::idle (/somewhere/SlimServer_v6.5.0/slimserver.pl line 440) frame 15: main::main (/somewhere/SlimServer_v6.5.0/slimserver.pl line 1039) Am I the only one using Random Mix, or is my setup broken somehow?
You could be the only one, but that doesn't mean it's not a bug. :) Ross, please have a look at reproducing this one as well.
I clicked 'Select None' and hit '+' next to 'songs' to add the resulting mix to my playlist and Slimserver crashed. The following information is part of the event: Carp::Clan::__ANON__(): Error executing 'SELECT me.id, me.url, me.content_type, me.title, me.titlesort, me.titlesearch, me.album, me.tracknum, me.timestamp, me.filesize, me.disc, me.thumb, me.remote, me.audio, me.audio_size, me.audio_offset, me.year, me.secs, me.cover, me.vbr_scale, me.bitrate, me.samplerate, me.samplesize, me.channels, me.block_alignment, me.endian, me.bpm, me.tagversion, me.drm, me.moodlogic_id, me.moodlogic_mixable, me.musicmagic_mixable, me.musicbrainz_id, me.playcount, me.lastplayed, me.lossless, me.lyrics, me.rating, me.replay_gain, me.replay_peak FROM tracks me LEFT JOIN genre_track genreTracks ON ( genreTracks.track = me.id ) WHERE ( audio = ? AND genreTracks.genre IN ( ) ) ORDER BY RAND() LIMIT 10': DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ) ORDER BY RAND() LIMIT 10' at line 1 at C:\Program Files\SlimServer\server\CPAN/DBIx/Class/Storage/DBI.pm line 771.
Fixed in change 10098
Verified to be fixed in SlimServer 6.5.1 - 10266 - Windows XP - EN - cp1252
This bug has been fixed in the 7.3.0 release version of SqueezeCenter! Please download the new version from http://www.slimdevices.com/su_downloads.html if you haven't already. If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look.