Re: bug in 2.4.22: process left in 'T' state.

From: Linus Torvalds
Date: Wed Dec 03 2003 - 11:11:56 EST




On Wed, 3 Dec 2003, Tigran Aivazian wrote:
>
> Now, after tcpdump captured the two icmp packets I waited until strace
> showed it blocked in the next recvfrom() system call and pressed ^C to
> terminate strace. It did terminate, but it left tcpdump in the 'traced'
> state and I couldn't do anything to kill tcpdump from within (i.e. all
> SIGINTs were blocked).

"T" isn't "traced", it's "sTopped" ("S" was already taken by "Sleeping").

And yes, terminating strace unexpectedly sometimes seems to leave the
tracee stopped. I _think_ the bug might be the kernel (reparent_thread()
should probably do all the same things that "ptrace_detach()" does, namely
wake the thread up), but it has never bothered me enough for me to care
deeply enough to check.

You can wake up the tracee by hand with a "kill -CONT pid".

If you dig into this and decide to fix the kernel, holler.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/