|
From: Frederik H. <fh...@te...> - 2008-03-24 22:15:01
|
I'm trying to help debugging a mutex deadlock in the Rhythmbox application (http://bugzilla.gnome.org/show_bug.cgi?id=512226). I though it would be interesting to run Rhythmbox under valgrind/helgrind, and see if that would give any clue. Now the problem is that while running under valgrind/helgrind, Rhythmbox crashes already during startup, with a very broken and strange stack trace caught by bug-buddy: Backtrace was generated from '/usr/bin/rhythmbox' [?1034hUsing host libthread_db library "/lib64/libthread_db.so.1". 0x0000000038010c73 in _start () at rtld.c:788 in rtld.c #0 0x0000000038010c73 in _start () at rtld.c:788 #1 0x000000003800bc70 in ?? () #2 0x0000000000000100 in ?? () #3 0x0000000402005058 in ?? () #4 0x010000000000041e in ?? () #5 0x0000000000000048 in ?? () #6 0x00000004023e4360 in ?? () #7 0x00000004023e4318 in ?? () #8 0x0000000038c83140 in ?? () #9 0x00000004023e43a8 in ?? () #10 0x0000000038020be7 in dl_open_worker (a=0x4020011a8) at dl-open.c:216 #11 0x0000000409a7bc60 in ?? () #12 0xffffffffffffffff in ?? () #13 0x00000000380207c3 in _dl_open (file=0x40298de88 "`¼§\t\004", mode=160543792, caller_dlopen=0x40298de80, nsid=512, argc=43572880, argv=) at dl-open.c:590 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Valgrind log: http://artipc10.vub.ac.be/rhythmbox.log Does anybody have a clue about what could be wrong, either with this crash, either with the original problem I was trying to debug? What things could I try further to debug this? valgrind-3.3.0-3mdv2008.1 glibc-2.7-11mnb1 gcc-4.2.3-6mnb1 2.6.24.3 x86_64, Mandriva Linux 2008.1 Cooker -- Frederik Himpe |
|
From: Julian S. <js...@ac...> - 2008-03-24 22:54:49
|
Hi, > Backtrace was generated from '/usr/bin/rhythmbox' I don't understand your report. You say that Rhythmbox crashes when running on Helgrind, but I don't see any evidence of that in the file > Valgrind log: http://artipc10.vub.ac.be/rhythmbox.log It is clear that there's some problem with lock ordering in your app, and that is likely to result in deadlocks and other strange behaviour. I strongly suggest that you fix the problems Helgrind reports in the order they are reported. So first, try to find the root cause of the first error, starting .. ==6452== Thread #1: lock order "0x13D51268 before 0xE7D7D68" violated See http://www.valgrind.org/docs/manual/hg-manual.html#hg-manual.lock-orders for some background on lock order problems and why they are likely to result in deadlocks. J |
|
From: Frederik H. <fh...@te...> - 2008-03-24 23:10:48
|
On Mon, 24 Mar 2008 23:50:44 +0100, Julian Seward wrote: > Hi, > >> Backtrace was generated from '/usr/bin/rhythmbox' > > I don't understand your report. You say that Rhythmbox crashes when > running on Helgrind, but I don't see any evidence of that in the file Indeed, that's what I don't understand either: there's no trace of this crash in the hellgrind log. Yet, while Rhythmbox was running in hellgrind, GNOME's bug-buddy popped up, stating that it had caught a crash in Rhythmbox, and it printed the above broken stacktrace. -- Frederik Himpe |
|
From: Julian S. <js...@ac...> - 2008-03-25 00:04:03
|
> >> Backtrace was generated from '/usr/bin/rhythmbox' > > > > I don't understand your report. You say that Rhythmbox crashes when > > running on Helgrind, but I don't see any evidence of that in the file > > Indeed, that's what I don't understand either: there's no trace of this > crash in the hellgrind log. Well, anyway, maybe you should forget about bug-buddy, and chase the lock order problems. It maybe that Valgrind is confusing bug-buddy; Valgrind does some strange things with signals. One other comment is that you really should use Helgrind and Memcheck together. See point (6) of http://www.valgrind.org/docs/manual/hg-manual.html#hg-manual.effective-use J |