FS#10259 - WPS bug while playing some music files as first song

Attached to Project: Rockbox
Opened by Maurus Cuelenaere (mcuelenaere) - Thursday, 28 May 2009, 22:16 GMT
Last edited by Maurus Cuelenaere (mcuelenaere) - Saturday, 01 August 2009, 19:38 GMT
Task Type Bugs
Category Themes
Status Closed
Assigned To Jonathan Gordon (jdgordon)
Operating System Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


I have this bug on some songs, but not on all (haven't determined what difference there is between the working & non-working).

When it gets triggered it, the variable 'value' at l.1405 (gwps-common.c) has an invalid value which triggers a memory exception at l.1411 (same file).

However when I play the same file after I played a working song (e.g. through the playlist) it doesn't get triggered...

Tested on: Onda VX747, SVN r21112'ish

(I'll look into this when I have some more spare time)
This task depends upon

Closed by  Maurus Cuelenaere (mcuelenaere)
Saturday, 01 August 2009, 19:38 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r22104.
Comment by Maurus Cuelenaere (mcuelenaere) - Saturday, 30 May 2009, 16:29 GMT
Today I couldn't reproduce this specific bug anymore, however I have exceptions (== data aborts on ARM) when running some MP3's, FLAC & WAV files as the *first* song.
But when I play a (working) MP3 file as first and then switch to one of these others, they work..

Will post more of this :)

SVN r21136
Comment by Maurus Cuelenaere (mcuelenaere) - Thursday, 04 June 2009, 12:31 GMT
If I add a splashf(HZ, "before"); at l.1410 of gwps-common.c, the song starts to play but the screen show only parts of the WPS and I can't do anything anymore (even though the song plays), so I suppose this is something with the codec thread..

If I don't add a splashf(), I get an exception around there regarding an invalid value of the variable 'value' I think (this smells like data corruption.. perhaps I should look into saving more registers when switching threads ..)
Comment by Maurus Cuelenaere (mcuelenaere) - Sunday, 28 June 2009, 16:59 GMT
Seems like %?C<|%ac%?ig<%ig|>> causes a crash on my Onda VX747


Somehow, the genre_string item of struct id3 gets cluttered to an invalid string pointer and so crashes the device..