[SunHELP] How to kill a kernel-blocked process ?
Nicholas Dronen
ndronen at frii.com
Mon Jan 21 13:09:49 CST 2002
On Mon, Jan 21, 2002 at 07:13:02PM -0000, DAUBIGNE Sebastien - BOR ( SDaubigne at bordeaux-bersol.sema.slb.com ) wrote:
> I'm unable to kill a multi-threaded java process. The process is sleeping,
> but doesn't catch any signal, including SIGKILL.
> "ps" says the process is sleeping :
>
> # ps -lfp 24185
> F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY
> TIME CMD
> 8 S root 24185 1 0 40 20 772c0198 9399 772c0210 11:10:37 ?
> 8:33 /usr/java1.1/bin/..//bin/sparc/nati
>
> However, the "-L" option tells that each of the 21 LWP is stopped ("T"
> state), except the 18th, which is sleeping ("S").
> It seems each thread is blocked in the kernel (bloking syscall).
> "truss" cannot contol the process, but the "pflags" command tells that some
> LWP are waiting for semaphore conditions, others
> are waiting for connexion or datas from TCP sockets.
> Using lsof, I tried to identify and connect to each of the 3 sockets the
> process is listening on, but it doesn't help.
> I also tried to identify and kill each of the local TCP peers process, with
> no result.
>
> I suspect some deadlock in the semaphore conditions.
> Do I have any chance to kill the process witout rebooting ?
Your chances are small. If a process doesn't die in response
to a SIGKILL, you usually have no choice but to reboot. If you
do reboot, I suggest forcing a dump on the system while you're
at it and examining the kernel stack trace of the thread later.
Regards,
Nicholas Dronen
More information about the SunHELP
mailing list