- Status Closed
- Percent Complete
- 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
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
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.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
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)
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
Stil happens to me while seeking with the latest dev release 91500e1.
pc: 30065418
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
Submitted as patch to gerrit (http://gerrit.rockbox.org/r/#/c/1902/).