How to diagnose a process stuck in D state?

From: Stephen Oberholtzer
Date: Fri Feb 22 2008 - 18:08:52 EST


First off: I'm not subscribed to the list (I don't think I could
handle the volume), so please make sure you CC me if you reply.

I run an application on one of my machines; it often hangs, with the
process stuck D state. When this happens, the process sticks around
until I reboot the machine.

I have tried the following to start diagnosing the problem:

* Running 'ps -axl' shows "-" in the wchan column.
* The contents of /proc/pid/wchan say "_stext".
* 'strace -p pid' says "Process pid attached - interrupt to quit" and
stops responding. Sending SIGINT and SIGTERM have no effect on the
strace process, although kill -11 (SIGSEGV, my personal favorite) does
work.

This is very confusing. I would greatly appreciate it if someone
could tell me how a process can enter D state without being in a
syscall, and what I can do to start tracking down the cause.

(By the way: This is on amd64, 2.6.23. I'm updating to 2.6.24.2 right
now, on the off chance that whatever was causing the problem has been
fixed.)

--
-- Stevie-O
Real programmers use COPY CON PROGRAM.EXE
--
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/