https://bugs.kde.org/show_bug.cgi?id=372504

--- Comment #16 from Philippe Waroquiers <philippe.waroqui...@skynet.be> ---
(In reply to David Hagood from comment #15)
> #1  0x00000000380936a9 in do_syscall_for_client (syscall_mask=0x80ddebdb0, 
>     tst=0x80200c130, syscallno=130) at m_syswrap/syswrap-main.c:339
According to the above, the 2 blocked threads are doing a sigsuspend
syscall.
Now, to get a thread out of a syscall, valgrind sends a special signal
VG_SIGVGKILL
(which is signal 64 on my setup. I think it changes depending on the platform,
but I guess it will be 64 on Ubuntu also).
So, maybe what happens is that the signal VG_SIGVGKILL is blocked ?

> 
> But, funny thing: after attaching to each of the three pending threads, then
> detaching, Valgrind exited. So it's like the second 2 threads in that group
> needed a kick in the head from the debugger to exit.
I guess that gdb is doing a ptrace syscall or something like that that
finally gets the thread 2 and 3 out of the syscall, allowing the
threads to terminate, and so the main thread detects they are dead.

I guess the question now is: why is the signal sent by valgrind to these 2
threads not getting these out of the syscall ?
Can you check the value of the mask ?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to