[Samba] Re: Problems with Excel & MS Word files (EVEN - still ANY ideas?)

Jeremy Allison jra at samba.org
Thu Apr 7 02:19:58 GMT 2005


On Wed, Apr 06, 2005 at 07:48:08AM -0400, Nathan Vidican wrote:
> Now (after applying patch from Jeremy), most of the problems with Excel and
> user's files being locked have quit. However, we're still getting some files
> locked out when a given smbd process hangs, it appears as though the process
> itself is tied up in some sort of loop or something and becomes
> un-responsive; the client tries to auto-reconnect and does so spawning a new
> 'duplicate' session to the first. Problem herein is two fold; first, the
> smbd process they origionally conencted with is still running, and still
> maintains the file locks for the file they are accessing, secondly, the smbd
> process maintains 100% cpu time (as the O/S allows anyhow, not lagging the
> servers thankfully).
> 
> So, we keep running into an issue (usually with Microsoft Excel or Word
> documents), wherein the smbd process for a particular user jumps to 100% cpu
> utilization and is apparently hung out to dry; the user already has another
> duplicate session running, and a simple forceful kill (kill -9 <pid>),
> removes the running program and the locked file issue(s) along with it. Any
> ideas as to what exactly is causing this, it's giving users the same error
> we've been encountering/patching for wherein they are prompted that the file
> simply cannot be saved; in some cases Excel will not even allow the user to
> save locally (to hardisk) and the (client) system requires a full reboot.
> 
> This happens with different users, on different shares, each attached from
> varying physical network segments, (100mbit switched network entirely,
> tree'd off from the main switch at gigabit ethernet speeds including the
> actual connection to the servers). Most branches are connected via fiber
> uplinks directly to transceivers connected to the main switch.

Try this patch. There was a problem with a 'while' being used instead
of a 'for' in smbd/dir.c. Already fixed in SVN.

Jeremy.
-------------- next part --------------
--- smbd/dir.c	2005-03-23 12:30:27.000000000 -0800
+++ /home/jeremy/src/samba3.0/source/smbd/dir.c	2005-04-06 18:57:46.157484483 -0700
@@ -602,7 +603,7 @@
 		return False;
 	}
 
-	while (SearchDir(dptr->dir_hnd, name, poffset) == True) {
+	if (SearchDir(dptr->dir_hnd, name, poffset)) {
 		if (is_visible_file(dptr->conn, dptr->path, name, pst, True)) {
 			return True;
 		}


More information about the samba mailing list