The Samba-Bugzilla – Bug 3357
[cifsd] in deep sleep after server gets unavailable
Last modified: 2006-01-12 05:52:54 UTC
running 2.6.14-gentoo-r5 and using the following in /etc/fstab (username & password changed, of course)
//snek.basa.dejvice.czf/creators /mnt/snek/storage cifs noexec,nosuid,username=foo,password=sekrit,uid=jkt,file_mode=0644,dir_mode=0755,iocharset=utf8 0 0
snek.basa.dejvice.czf is running some kind of Samba on OpenBSD, don't know exact version right now.
I've mounted that share and some applications were accessing it (music player was one of them, but there might be others as well). Then I've unplugged Samba server from network and replaced it with another box (same IP address, no Samba, different MAC address). After a while, I run `ps aux` which got hung in the middle of output, exactly as other stuff trying to access certain items like `ls -al /proc/*/exe`. Kernel thread "[cifsd]" was in the "D" (deep sleep, uninterruptable) as well as the `ps` processes.
Machine was still quite usable, but reboot was the only way to fully recover (I've tried `umount`, `kill`, `modprobe -r cifs` etc, nothing helped).
Post 2.6.14 (it is in 2.6.15), I added a fix to the cifs notify thread to periodically try to wakeup two cifs queues which requests could get hung on waiting for responses that were never going to come, especially for single process cases, processes could stay asleep despite the requested timeout on sleep (about 15 seconds).
I think this will help but I don't think I backported it to 2.6.14 - not sure if it is in the latest cifs tar.gz on the linux-cifs-client.samba.org project page.
(In reply to comment #1)
> Post 2.6.14 (it is in 2.6.15)
Okay, I've switched to 2.6.15. I'll report back if I see it again. Thanks.