BUG: vfs-cifs hangs from windows explorer: access denied: cause
azez at ufomechanic.net
Thu Nov 29 10:31:09 GMT 2007
Writing large-ish (< 2MB) files from pbrush.exe or from windows explorer
via the vfs_cifs proxy (without my patches) is very slow, hangs windows
for a while and reports that delayed writes failed.
If I try to copy the same file under cygwin (with a fresh smbd proxy) it
runs through just fine.
tshark recording traffic says:
1445.335452 win2kclient -> wafs-dev SMB Write AndX Request, FID:
0x001b, 61440 bytes at offset 0
1445.352346 wafs-dev -> mothership SMB Write AndX Request, FID:
0x4000, 61440 bytes at offset 0
1445.352356 wafs-dev -> mothership NBSS NBSS Continuation Message
1445.352361 wafs-dev -> mothership NBSS NBSS Continuation Message
1445.354056 mothership -> wafs-dev SMB Write AndX Response, Error:
(cygwin uses 8192 byte writes)
further debugging shows that in cvfs_write,
= 16644, but the write from the win2kclient is 61440 bytes.
So I guess the max_xmit needs properly negotiating between the proxied
server and the client, or if impossible, then perhaps break up the async
write into smaller async writes within the proxy (ouch).
I also note that after the STATUS_ACCESS_DENIED error windows may send
more writes but the win2k server does not respond to these at all! And
the proxy eventually sends timeout messages to the client.
After this the smb session becomes pretty useless, although that may be
the windows service that is choking up rather than the proxy.
max xmit is set in smb.conf [globals] to 8192 (and defaults to 12211
anyway) so I'm not sure why the win2k wanted to go sending 61440 byte
I'm trying to track down the reason the win2k client thought it could
make big writes, but shortcuts would be appreciated.
More information about the samba-technical