2005-02-20 23:09:55

by Cameron Harris

[permalink] [raw]
Subject: cifs connection loss hangs

Being a wireless user i experience the occasional connection loss due
to walking out of range or something, recently after starting to use
cifs mounts instead of smbfs, I've noticed that stuff tends to break
if i lose connection.
I first noticed this when my bootscript brought down the wireless
before it umounted the cifs share, and it hung the shutdown. Recently
i was copying some files over with a nautilus window open. I lost
connection and the nautilus window & the cp process froze. ps said
that they were stuck in D (Uninterruptible Sleep). I read it's a
kernel problem if something gets stuck in it. umounting the cifs
filesystem didn't even wake up the process, I had to reboot (which
didn't work right because something was stuck with a file open).
Anyone got any ideas on how this could be fixed?
Thanks
--
Cameron Harris


2005-02-21 15:35:53

by Steve French

[permalink] [raw]
Subject: Re: cifs connection loss hangs


>Being a wireless user i experience the occasional connection loss due
>to walking out of range or something, recently after starting to use
>cifs mounts instead of smbfs, I've noticed that stuff tends to break
> if i lose connection.

cifs does support reconnection after tcp session drops (including
reattaching to the server shares and reopening open files, rewriting
cached data).

What kernel version ("cat /proc/version") or cifs vfs version ("modinfo
/lib/modules/<kernel ver>/kernel/fs/cifs/cifs.ko) are you running?

2.6.10 includes one fix for a race in the cifs reconnection logic (which
is included in cifs version 1.27 or later) and there was an earlier (and
more important) reconnection fix in cifs version 1.10 (I think that came
in mainline about at kernel version 2.6.6).

There are test patches (or in some cases a copy of the fs/cifs
directory) available for a few of the older but common kernels (SLES9,
SuseWorkstation 9.2, FC3 etc.) at
http://us1.samba.org/samba/ftp/cifs-cvs which include up to 2.6.10 level.

Note that you can view the state of cifs connections by "cat
/proc/fs/cifs/DebugData" (also interesting is "cat /proc/fs/cifs/Stats")
which will show the cifs tcp sessions, smb sessions and tree connection
(mount) and whether they need reconnection - it also shows the state of
any pending [cifs] operations on the network.

2005-02-21 20:09:26

by Cameron Harris

[permalink] [raw]
Subject: Re: cifs connection loss hangs

On Mon, 21 Feb 2005 09:35:44 -0600, Steve French <[email protected]> wrote:
>
> >Being a wireless user i experience the occasional connection loss due
> >to walking out of range or something, recently after starting to use
> >cifs mounts instead of smbfs, I've noticed that stuff tends to break
> > if i lose connection.
>
> cifs does support reconnection after tcp session drops (including
> reattaching to the server shares and reopening open files, rewriting
> cached data).
>
> What kernel version ("cat /proc/version") or cifs vfs version ("modinfo
> /lib/modules/<kernel ver>/kernel/fs/cifs/cifs.ko) are you running?
>
> 2.6.10 includes one fix for a race in the cifs reconnection logic (which
> is included in cifs version 1.27 or later) and there was an earlier (and
> more important) reconnection fix in cifs version 1.10 (I think that came
> in mainline about at kernel version 2.6.6).
>
> There are test patches (or in some cases a copy of the fs/cifs
> directory) available for a few of the older but common kernels (SLES9,
> SuseWorkstation 9.2, FC3 etc.) at
> http://us1.samba.org/samba/ftp/cifs-cvs which include up to 2.6.10 level.
>
> Note that you can view the state of cifs connections by "cat
> /proc/fs/cifs/DebugData" (also interesting is "cat /proc/fs/cifs/Stats")
> which will show the cifs tcp sessions, smb sessions and tree connection
> (mount) and whether they need reconnection - it also shows the state of
> any pending [cifs] operations on the network.
>
I use 2.6.11-rc1-mm1. I'll check out the /proc/fs/cifs/ stuff next
time i get a problem. It isn't so much reconnection issues, it's if
the connection is completely lost for whatever reason it tends to put
the processes to uninterruptible sleep. It's as though it doesn't
actually return an error, but instead waits until it can access the
file again, even when the filesystem is umounted.

--
Cameron Harris