Bug 4389 - Following genre link on the Nokia770 skin Now Playing page crashes SlimServer
: Following genre link on the Nokia770 skin Now Playing page crashes SlimServer
Status: RESOLVED FIXED
Product: Logitech Media Server
Classification: Unclassified
Component: Web Interface
: 6.5.1
: PC Windows XP
: P2 normal (vote)
: ---
Assigned To: Chris Owens
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2006-10-18 03:31 UTC by Nigel Birch
Modified: 2008-12-18 11:11 UTC (History)
2 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nigel Birch 2006-10-18 03:31:16 UTC
This is with SlimServer v6.5.1 - 10386 - Windows XP - EN - cp1252; Perl v5.8.8 MSWin32-x86-multi-thread; MySQL v5.0.22-community-nt.

Steps to reproduce:

1. From the Nokia770 skin, add songs to the Now Playing playlist.
2. From the Now Playing screen (musical note icon on the toolbar), click the hyperlink for the genre.
3. SlimServer crashes with the following error in the Windows application event log:

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  JOIN albums album ON ( album.id = me.album ) WHERE ( me.audio = ? ) GROUP BY me.id ORDER BY concat('0', contributor.namesort),album.year,concat('0', album.titlesort) LIMIT 50': DBD::mysql::st execute failed: Unknown column 'contributor.namesort' in 'order clause' at C:\Program Files\SlimServer\server\CPAN/DBIx/Class/Storage/DBI.pm line 771.

The URL that Nokia770 uses for the genre link is:

http://servername:9000/Nokia770/browsedb.html?hierarchy=genre,album,track&level=1&genre.id=3&player=00%3A04%3A20%3A05%3Aab%3Aab

The equivalent link (from song properties) in Default doesn't cause a crash:

http://servername:9000/browsedb.html?hierarchy=genre,contributor,album,track&level=1&genre.id=3&player=00%3A04%3A20%3A05%3Aab%3Aab

I can't run SlimServer from the command line (to get more information) since it gives the following error:

C:\Program Files\SlimServer\server>perl slimserver.pl
XML::Simple version 2.15 required--this is only version 2.12 at C:/Perl/lib/Exporter/Heavy.pm line 121.
BEGIN failed--compilation aborted at slimserver.pl line 102.

The service starts okay.  I've update to ActiveState ActivePerl v5.8.8.819 and manually updated XML:Simple to v2.15 but it still gives the same error.  It's probably not related to the crasher, but I thought I'd mention in case.

Thanks.
Comment 1 KDF 2006-10-18 08:39:01 UTC
should be a simple fix:
Index: HTML/Nokia770/status.js
===================================================================
--- HTML/Nokia770/status.js     (revision 10387)
+++ HTML/Nokia770/status.js     (working copy)
@@ -287,7 +287,7 @@
        songinfoArray[songinfoArray.length] = {name: 'songtitle', stub:'songinfo.html?item='};
        //songinfoArray[songinfoArray.length] = {name: 'artist', stub:'browsedb.html?hierarchy=album,track&level=1&contributor.id='};
        songinfoArray[songinfoArray.length] = {name: 'album', stub:'browsedb.html?hierarchy=album,track&level=2&album.id='};
-       songinfoArray[songinfoArray.length] = {name: 'genre', stub:'browsedb.html?hierarchy=genre,album,track&level=1&genre.id='};
+       songinfoArray[songinfoArray.length] = {name: 'genre', stub:'browsedb.html?hierarchy=genre,contributor,album,track&level=1&genre.id='};
        refreshElement('artist',parsedData['artisthtml']);
 
        songinfoArray.each(function(key) {
Comment 2 Ben Klaas 2006-10-18 08:52:11 UTC
thanks KDF. Fixed and checked into both 6.5 and trunk
Comment 3 KDF 2006-10-18 10:15:07 UTC
That would be change 10390 for trunk and change 10391 for 6.5.1.

Don't forget the changelog. thanks.
Comment 4 Ben Klaas 2006-10-18 10:26:20 UTC
is there some kind of best practices doc that I can refer to so I know what I'm supposed to do on checkins? I had no idea changelog was something I was expected to update, and only recently found out that I should be referring to bug numbers in checkin messages.

Comment 5 Ben Klaas 2006-10-18 11:53:17 UTC
I also don't know the location of changelog that I'm to amend. I see lots of Changelog*.html files in the top dir. Am I supposed to update one of those? Which one?
Comment 6 KDF 2006-10-18 14:58:55 UTC
Dan mentioned it in the dev forum a while back.  In the svn server folder, there are a number of Changelog#.html files.  If you alter something in 6.5 then a note goes in trunk and branch Changelog6.html.  If you only change trunk, then use Changelog7.html.  Anything with a filed bug gets reported in the list of fixed bugs.  Any other notable features should be added as a note in the applicable section at the time the change is committed.

I'd have done the changelog myself on this one, but during the day I have no svn access.
Comment 7 KDF 2006-10-18 18:14:07 UTC
added changelog notes at change 10399 and change 10400.
Comment 8 Nigel Birch 2006-10-19 03:17:03 UTC
Works for me.  Thanks for the really quick fix.