After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 303964 - rhythmbox hangs waiting for read lock when running with a large database and with a search string present
rhythmbox hangs waiting for read lock when running with a large database and ...
Status: RESOLVED DUPLICATE of bug 169310
Product: rhythmbox
Classification: Other
Component: general
HEAD
Other All
: Normal major
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-05-12 20:36 UTC by Oktay Altunergil
Modified: 2006-01-11 08:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Gzipped hang log (14.92 KB, application/x-gzip)
2006-01-11 08:37 UTC, Nickolay V. Shmyrev
Details

Description Oktay Altunergil 2005-05-12 20:36:56 UTC
Please describe the problem:
I have an installation with 13GB of mp3s imported into the rhythmbox database.
Recently I noticed that the application would start, but then hang before it
showed any of the mp3s on the interface. It looked like I had zero songs in it.

I ran strace and saw that it was sitting at a FUTEX_WAIT statement, possibly
waiting for a read lock somewhere.

Running with -d it showed a similar message (mentioned a 'read lock' just before
hanging).

Also in the logs I noticed it mentioned the string 'Led' (as in Led Zeppelin,
which was left in the Search box from the previous session).

Workaround:

I killed rhythmbox. Renamed rhythmdb.xml to rhythmdb.xml- to start with no songs
in the database. Started rhythmbox. It started up properly. I then cleared the
search box. Exited rhythmbox. Renamed rhythmdb.xml- back to rhythmdb.xml and
started rhythmbox. Voila. It started properly and loaded all the songs in the
database.

My problem is solved. Just reporting this as potentially helpful troubleshooting
info.

Steps to reproduce:
1. Please see above.
2. 
3. 


Actual results:
please see above

Expected results:
please see above

Does this happen every time?
yes

Other information:
running ubuntu. I was initially suspicious of gamin (file modification daemon of
gnome) because of the read lock thing. It might still be an issue as lsof
initially showed a read lock on the media directories. However the issue wasn't
resolved when i killed gam_serve.
Comment 1 James "Doc" Livingston 2005-08-08 09:10:05 UTC
Did deleting rhythmbox.xml and then readding all you music help? If so then it
sounds like a corupted database.

Rhythmbox doesn't handle corrupted databases too well at the moment - I don't
suppose you can get a backtrace of where it is waiting? (unless you still have
the old rhythmbox.xml file, that caused the hang, this could be hard)
Comment 2 Nickolay V. Shmyrev 2006-01-09 22:12:46 UTC
James, not sure if it's the same problem, but I am also can reproduce such behaviour. It looks like threading problem related to different stat timeing. To make it reproducable, you can just add something like:

        int i, j;
        for (i=0; i<100000000; i++)
                j+=i + (int)uri;

in function rythmbdb_execute_stat.
Comment 3 Jonathan Matthew 2006-01-10 21:33:36 UTC
I can't reproduce this.  From your comments on irc it looked like the rhythmdb action thread was getting stuck.  Can you try finding the last message from it in the debug output (the first number on each line is the thread ID) and also attach a stack trace?
Comment 4 Nickolay V. Shmyrev 2006-01-11 08:35:25 UTC


Thread 1 (Thread -1209039168 (LWP 7234))

  • #0 IA__gdk_draw_drawable
    at gdkdraw.c line 675
  • #1 gdk_pixmap_draw_drawable
    at gdkpixmap.c line 337
  • #2 IA__gdk_draw_drawable
    at gdkdraw.c line 683
  • #3 cl_progressbar_fill
    from /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
  • #4 clearlooks_rc_style_register_type
    from /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
  • #5 gtk_paint_box
    from /usr/lib/libgtk-x11-2.0.so.0
  • #6 gtk_progress_bar_new_with_adjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 gtk_progress_bar_new_with_adjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #8 status_tick_cb
    at rb-statusbar.c line 362
  • #9 g_main_context_wakeup
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #11 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #12 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #13 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #14 main
    at main.c line 398
  • #0 ??
  • #1 ___newselect_nocancel
    from /lib/libc.so.6
  • #2 _XError
    from /usr/X11R6/lib/libX11.so.6
  • #3 _XError
    from /usr/X11R6/lib/libX11.so.6
  • #4 XCopyArea
    from /usr/X11R6/lib/libX11.so.6
  • #5 gdk_x11_draw_drawable
    at gdkdrawable-x11.c line 706
  • #6 IA__gdk_draw_drawable
    at gdkdraw.c line 683
  • #7 gdk_pixmap_draw_drawable
    at gdkpixmap.c line 337
  • #8 IA__gdk_draw_drawable
    at gdkdraw.c line 683
  • #9 cl_progressbar_fill
    from /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
  • #10 clearlooks_rc_style_register_type
    from /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
  • #11 gtk_paint_box
    from /usr/lib/libgtk-x11-2.0.so.0
  • #12 gtk_progress_bar_new_with_adjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 gtk_progress_bar_new_with_adjustment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #14 status_tick_cb
    at rb-statusbar.c line 362
  • #15 g_main_context_wakeup
    from /usr/lib/libglib-2.0.so.0
  • #16 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #17 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #18 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #19 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #20 main
    at main.c line 398
      
Comment 5 Nickolay V. Shmyrev 2006-01-11 08:35:47 UTC
It seems to bee clearlooks issue, since changing the theme to Bluecurve
makes things work nicely. My gtk is gtk2-2.6.10-2, Clearlooks from
gnome-theme-2.10.1. I remember there was a similar bug in clearlooks in
GtkProgressbar due to gdk error. Probably it's better just to test on 
newer gtk version and check if it's fixed. 
Comment 6 Nickolay V. Shmyrev 2006-01-11 08:37:03 UTC
Created attachment 57147 [details]
Gzipped hang log
Comment 7 Nickolay V. Shmyrev 2006-01-11 08:48:16 UTC
I think it's the same bug as 169310 and it should be fixed. Let everyone feel free to reopen this bug if problem still stays

*** This bug has been marked as a duplicate of 169310 ***