Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bugs
  • Category ID3 / meta data
  • Assigned To No-one
  • Operating System All players
  • Severity High
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by woodensoul - 2006-06-09
Last edited by jdgordon - 2006-11-06

FS#5521 - Switching fileview to ID3 database causes lock-up

It doesn’t happen every time, but is still occuring using the CVS build 060609-0019. I use the quick menu to make the fileview change.

Closed by  midgey34
2007-02-18 17:38
Reason for closing:  Works For Me
Additional comments about closing:  

I can\'t reproduce the reported issue and the user hasn\'t responded in nearly two months.

I forgot to mention that the lock-up occurs when the navi button is pushed in to navigate the ID3 database.

Do you have voiced directories enabled? If so, does turning this off resolve the crash?

I do not have voiced directories enabled.

mmohr commented on 2006-07-12 12:12

I also have this problem (voiced directories are disabled).
And it happens always when switching the fileview to ID3 database
(from "all" if that matters), going back to WPS screen (the music
still plays) and then pressing the NAVI button to navigate.

The music suddenly stops, the whole device freezes and I have to use
the reset hole to switch my device off…

mmohr commented on 2006-07-12 13:00

Here are some additional informations which may (hopefully) help:

I reproduced the problem with an H300 simulator and CVS from today.
I don't know if this is the same place at which it crashes on the
real device - but it's a beginning ;)
It seems the reason for crashing is in apps\\gui\\list.c in function
gui_list_draw.

It tries to get the entry_name and does get a wrong (corrupt) pointer:

  entry_name = gui_list->callback_get_item_name(current_item,
                                                gui_list->data,
                                                entry_buffer);

In my test this gives back an pointer at address 0x7 which of course
is "out of bounds". This pointer will be given to display→getstringsize
(which is a pointer to lcd_getstringsize) and there to font_getstringsize
and to utf8decode where the access to that pointer leads to the crash.

I have no idea why the pointer is wrong (maybe the gui_list pointer is
also no longer correct after switching the viewmode?)
Hopefully some more experienced developer is able to use my information
and find out what's causing this bug…

Here's the call stack which I got when it crashes inside the simulator:


Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 2136.0x8d8]
0x004464eb in utf8decode (utf8=0x8 <Address 0x8 out of bounds>, ucs=0x312fbce)

  at common/unicode.c:250

250 unsigned char c = *utf8++;
(gdb) where
#0 0x004464eb in utf8decode (utf8=0x8 <Address 0x8 out of bounds>,

  ucs=0x312fbce) at common/unicode.c:250

#1 0x00441c4c in font_getstringsize (str=0x7 <Address 0x7 out of bounds>,

  w=0x312fc3c, h=0x312fc38, fontnumber=1) at font.c:389

#2 0x0043f024 in lcd_getstringsize (str=0x7 <Address 0x7 out of bounds>,

  w=0x312fc3c, h=0x312fc38) at drivers/lcd-16bit.c:153

#3 0x0042197e in gui_list_draw (gui_list=0x54d400) at gui/list.c:202
#4 0x00422298 in gui_synclist_draw (lists=0x54d400) at gui/list.c:530
#5 0x004179bb in dirbrowse () at tree.c:928
#6 0x004169ac in browse_root () at tree.c:257
#7 0x00404430 in app_main () at main.c:104


This may be fixed in builds newer than 2006-08-16 04:30. It seems that the directory needs to be reloaded after using tagcache otherwise the dirbrowser gets confused.

mmohr commented on 2006-08-23 14:59

Jeremy, can you confirm that it's fixed?

I tested a build from about 2 days ago and still got the freeze after a navi-push following a switch to ID3 database.

mmohr commented on 2006-09-02 17:45

Jeremy, I also retested it and can't reproduce it anymore -
so it seems we need some more information from your.

You're just listening to some music and when you switch to ID3 database
and go back to WPS screen it freezes? Always? Or only sometimes?

It seems that this bug has been fixed with recent builds. I have not been able reproduce it. Let's hope it's a permanent fix.

mmohr commented on 2006-09-13 20:42

So I'll now close it - it may be reopened if it occurs again ;)

Ah, comment is in the history. Gotcha. I am a doofus.

aelg commented on 2006-12-01 09:49

This bug does still exist in the CVS-061130 on the Iriver H-320.
Seems that the crash on happens when you enter the database for the first time since startup, once you've sucessfully entered it once it works fine.
Steps to repuduce:
1. Set Show files: Supported
2. Restart player
3. Switch to Show files: ID3 Database using the quick menu
4. Press the NAVI button
Doesn't matter if I'm using directory cache or voice the player still crashes.

Hi,

I have also this problem. I'm using a Iriver H140 with Rockbox build 061222 … really frustrating :-(. Any one else also has this problem with recent builds?

I've been able to avoid this problem for a while. It seems that if you are in the WPS when you press <Navi>, then while viewing the file browser, change the fileview to ID3 database via long <A-B> press, the crash does not occur. However, if you change the fileview to ID3 database while viewing the WPS, the crash occurs as soon as <Navi> is pushed to view the database. So until the bug is resolved, that is how to avoid the crash.

Thnx Jeremy, your solution works fine :). I hope that somebody can fix this problem.

Roel or Linus (or Jeremy),

I can't repro this but would like to fix it - can you please check if it's still happening with a current build, and if so, export your settings to a .cfg file and attach it to a reply here. (Or even better, report back that it is now fixed!)

Thanks,
Steve

Sorry, I can't reproduce the issue here in either the WPS or file browser. Please try a current build and report if the issue has been resolved.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing