FS#10368 - Performing 'View Catalog' 3 times in a row crashes with StkOv

Attached to Project: Rockbox
Opened by Dan (Skyly) - Monday, 22 June 2009, 10:41 GMT
Last edited by Jonathan Gordon (jdgordon) - Tuesday, 22 December 2009, 06:09 GMT
Task Type Bugs
Category User Interface
Status Closed
Assigned To No-one
Operating System Iriver H300 series
Severity Low
Priority Normal
Reported Version Version 3.3
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


To reproduce, go to the Playlist Catalog by any means.

1. Highlight a playlist and hold NAVI to enter the context menu.
2. Select Playlist Catalog.
3. Select View Catalog.
4. Repeat.

After about 3 repeats the unit crashes, on any of the above steps depending on how you first entered the catalog.

Not a critical problem, just a thorn to be there. Workaround is to not do it.
This task depends upon

Closed by  Jonathan Gordon (jdgordon)
Tuesday, 22 December 2009, 06:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  in r24097. someone is welcome to make this hack work better with the menus
Comment by Nick Sant (evilnick) - Monday, 29 June 2009, 16:10 GMT
I can't reproduce this on my Sansa E280, tried repeating the steps 7 times and no crash. Could this be linked to the difference in arch between the players?
Comment by Steve Bavin (pondlife) - Tuesday, 30 June 2009, 07:37 GMT
I can't repro it on the H300 sim either, FWIW. Maybe post your config.cfg?
Comment by Magnus Holmgren (learman) - Saturday, 04 July 2009, 09:43 GMT
Difference in compilers is a possibility. I've noticed that the gcc used for coldfire (including the h300) inlines more functions, which can make stack usage quite different on arm and coldfire (like in the recently fixed database stack overflow, which only happened on coldfire targets). And in the sim, the stack is much bigger...
Comment by B Sinclair (alienrider) - Sunday, 12 July 2009, 18:34 GMT

I can confirm that this happens on my H3xx mp3 player with build r21613-090702.

Hope this helps.

Comment by Nils Wallménius (nls) - Saturday, 05 December 2009, 10:47 GMT
still happening on h300, i would say the fundamental problem is that we allow the catalog_view_playlists function (with a few button presses) to recursively call itself as much as it wants, so the stack will overflow eventually on any platform and any compiler

catalog_view_playlists calls display_playlists which allocates a 1600 byte array on the stack so only a few iterations and indeed it crashes my Gigabeat S and sansa c200 reliably too so
some kind of recursion protection for this function is needed.