|
From: Philippe W. <phi...@sk...> - 2014-01-26 13:07:54
|
On Sun, 2014-01-26 at 02:20 +0000, David Carter wrote:
> Hi,
>
>
> I've got an issue with memcheck in Valgrind 3.8.1 hanging. I've left
> processes running for weeks or even months but they don't complete
> (normally these processes run in a few minutes tops, and they were
> working fine with memcheck until a while ago.
>
>
> Has anyone seen anything like this before? Here are the details:
>
>
> options:
>
> --quiet --track-origins=yes --free-fill=7a
> --child-silent-after-fork=yes --fair-sched=no --log-file=/path/to/log
> --suppressions=/path/to/suppression.file
>
>
>
> strace shows:
>
> Process 5223 attached - interrupt to quit
>
> read(1027,
With --fair-sched=no, valgrind uses a pipe to implement a "big lock".
It is however not clear with what you have shown if this 1027 is
the valgrind pipe big lock fd. If yes, then it looks like a bug in
valgrind, as the above read means a thread want to acquire the big
lock to run, but the thread currently holding the lock does not
release it.
Here are various suggestions :
1. when you are in the above blocked state, use gdb+vgdb
to connect to your process, and examine the state
of your process (e.g. which thread is doing what)
(the most likely cause of deadlock/problem is your application, not
valgrind, at least when looking at your mail with
a "valgrind developer hat on" :).
2. upgrade to 3.9.0, there are many bugs solved since 3.8.1
(probably not yours, I do not see anything related to deadlock
but one never knows).
3. run with a lot more traces e.g.
-v -v -v -d -d -d --trace-sched=yes --trace-syscalls=yes --trace-signals=yes
and see if there is some suspicious output.
Philippe
|