Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bugs
  • Category Codecs
  • Assigned To No-one
  • Operating System Sansa Clip+
  • Severity Medium
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by sloh - 2015-10-26
Last edited by speachy - 2018-12-23

FS#13060 - Seeking in long opus files leads to crash on Sansa Clip+

possibly related to  FS#12851 .

When seeking in large opus files, rockbox crashes.
Using git bisect, I found commit 9b7ec42 to be the first one showing this behavior.

The crash screen for the latest git revision d57e651 looks as follows:


*PANIC*
Stkov codec
pc:3006008C sp:30803B{cut of due to screenspace ending. Next character could possibly be a ‘3’}

 A: 3008728C

bt end


If I interpret the map-file correctly (and I totally might not), that would put the Program Counter somewhere in cancel_cpu_boost (thread.o).

for 9b7ec42 it is pc:3005E264, A: 3005E2BC. Stackpointer is the same.
Here the pc appears to be in check_tmo_threads (thread.o)

I haven’t quite figured out where exactly “large” starts, but it does happen with 4 hour long files (~60MB), but not with 1 hour long files (~20MB). It also does not happen in the Simulator, only on the actual hardware.

Example files:
error occurs: http://freakshow.fm/podlove/file/4299/s/download/c/select-show/fs162-das-fix-ich-jetzt-einfach-mal.opus error does not occur: http://meta.metaebene.me/media/lnp/lnp122-the-internet-is-about-love.opus

Closed by  speachy
2018-12-23 22:39
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

The workaround patch was committed a while back, so I think we can close this ticket.

i can confirm this behaviour for version bc56811 from 2016-02-16.
the following file reliably crashes rb here if searching more than about 1 minutes into the file:
http://meta.metaebene.me/media/raumzeit/rz060-extrasolare-planeten.opus (http://raumzeit-podcast.de/2016/01/05/rz060)

sloh commented on 2017-03-27 10:09

Update: it no longer crashes when seeking manually, but still crashes when resuming a bookmark (version bfd04df from 2017-03-22)
pc: 30064618
sp: 30803B{again cut of due to screenspace ending. Next character could still possibly be a '3'}
A: 3008C020

dawg commented on 2018-08-19 05:52

Stil happens to me while seeking with the latest dev release 91500e1.
pc: 30065418

dawg commented on 2018-08-19 08:06

Build a debug version of rockbox and could map the crash pc (30066970) to thread_panicf¹ using addr2line.
Most likely this is simply a stack overflow as detected by checking the bottom of the stack².

¹: https://git.rockbox.org/?p=rockbox.git;a=blob;f=firmware/kernel/thread.c;hb=d55680993df9b6743506814d98b5cc1859828f8a#l198 ²: https://git.rockbox.org/?p=rockbox.git;a=blob;f=firmware/kernel/thread.c;hb=d55680993df9b6743506814d98b5cc1859828f8a#l1028

I fiddled a bit with the stack size of the decoder thread³ and bumping it by just another 1KiB resolves the issue for me.
As memory is quite limited on this device it would be better to save stack space if possible, but that required a lot more effort at understanding seeking in the opus codec.

³: https://git.rockbox.org/?p=rockbox.git;a=blob;f=apps/codec_thread.c;h=b511809d6d1e5ac30c5b34b9f388cbe7d88eac49;hb=d55680993df9b6743506814d98b5cc1859828f8a#l93

dawg commented on 2018-08-19 08:53

Submitted as patch to gerrit (http://gerrit.rockbox.org/r/#/c/1902/).

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing