Messages in this thread | | | Date | Tue, 6 May 2003 18:05:10 +0200 | Subject | Re: [NFS] processes stuck in D state | From | Trond Myklebust <> |
| |
>>>>> " " == Michael Buesch <fsdeveloper@yahoo.de> writes:
> To reproduce the problem: > - - mount some nfs from a server in your lan. > - - Open an app, that uses the mounted fs. I've simply opened a > konqueror-window for the directory where the nfs is mounted. > - - shut down or crash the server or just pull the > network-cable. > - - Now the konqueror-process is nonkillable in D > state. There's no > chance to kill it.
Unless you are using the 'intr' or 'soft' mount flags, then that is *documented and expected* behaviour.
It is true that even when using the 'intr' mount flag, you don't always succeed in killing a task that is hanging on NFS. That is usually due to the fact that it is waiting on some semaphore that is held by another process. semaphores always sleep in the TASK_UNINTERRUPTIBLE state, so they cannot be signalled. Linus has suggested a solution to this problem: to set up a special class of semaphores that are killable with 'SIGKILL', but doing that (and then replacing all those semaphores in the VFS and VM) is not going to happen before 2.7.x. at the earliest.
However, as I've mentioned on this list *many* times before: there exists a workaround if you are wanting to kill all processes in order to unmount the partition: kill -9 all the processes. kill -9 rpciod.
Cheers, Trond - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |