Geoff Ellingwood
2007-Feb-12 21:23 UTC
[Samba] File transfers to Windows XP x64 stalling and dying after a few minutes.
I just did a fresh install of Windows XP Professional x64 on my primary machine, and am reconnecting all of my LAN services. One thing I have on my home network is a dedicated file server, running Ubuntu and Samba, used as a general file server, as well as a backup for when I reformatted my main system. While attempting to restore some of my files, I started noticing some odd errors. After a few minutes of transfers on a Samba session, the transfers would simply die, with various errors. Watching movies or listening to music stored on the server would meet with similar problems (the audio/video would start to skip). I attempted to narrow down the problem a bit. I have not experienced any errors with Internet transfers at all - I receive sustained high transfer rates off of high-traffic websites, and get excellent ping rates when playing on-line games. Transfers on the LAN using other protocols (SCP, AIM, etc.) all work just fine, both to and from the server, as well as with other machines on the LAN. My only conclusion was that something in Samba was causing this issue. To confirm, I watched the samba log and the top monitor while a transfer was occurring (and failed). Sure enough, something strange happened. I opened up the shared folder in Windows and began a copy of a large (2 Gb) ISO file. At first, the transfer went just fine. But then, the smbd process went from a steady 40% CPU utilization down to next to nothing. The file transfer also stalled at this point. After about 30 seconds, the process went back to normal utilization and the file transfer resumed, but the stall happened again after another few minutes. At this point, Windows apparently gave up, saying that "The specified network name can no longer be found" and aborted the file transfer. Then, the log spit out a few errors, which I have reproduced here: [2007/02/12 14:55:08, 1] smbd/service.c:make_connection_snum(693) bast (192.168.0.102) connect to service dump initially as user neppyman (uid=1000, gid=1000) (pid 11290) [2007/02/12 15:01:29, 0] lib/util_sock.c:read_data(529) read_data: read failure for 4 bytes to client 192.168.0.102. Error Connection reset by peer [2007/02/12 15:01:29, 0] lib/util_sock.c:write_data(557) write_data: write failure in writing to client 192.168.0.102. Error Broken pipe [2007/02/12 15:01:29, 0] lib/util_sock.c:send_smb(765) Error writing 75 bytes to client. -1. (Broken pipe) [2007/02/12 15:01:31, 1] smbd/service.c:make_connection_snum(693) bast (192.168.0.102) connect to service dump initially as user neppyman (uid=1000, gid=1000) (pid 11311) I'm certainly no Linux guru, but I was at least able to get Samba set up and running prior to the reformat, and had no issues with it up until this point. Here are various portions of my smb.conf file: [global] workgroup = DOPE FIENDS server string = Loki dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d security = user encrypt passwords = true valid users = <snip> ... neppyman passdb backend = tdbsam guest obey pam restrictions = yes invalid users = root passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . wins support = no [homes] comment = Home Directories browseable = no writable = no create mask = 0700 directory mask = 0700 [printers] comment = All Printers browseable = no path = /tmp printable = yes public = no writable = no create mode = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no [dump] path = /share comment = Network Dump read only = No force create mode = 0777 guest ok = Yes (end smb.conf) Version information: Server OS: Ubuntu 6.06 LTS, fully patched. Samba: 3.0.22 Host OS: Windows XP x64, fully patched Any ideas as to what could be causing this and how it can be fixed? And if you need more information, just let me know. -- Geoff