[Samba] lockups with windows 2000 client, every 15 minutes or so

Daniel Resare noa at metamatrix.se
Wed Feb 26 00:13:03 GMT 2003


I have just entered the wonderful world of windows filesharing at my 
small home LAN and I'm experiencing the following problem: When I 
continually listen to ogg files in Windows 2000 Server from a samba 
server the music locks up every 15 minutes or so. Everything in the 
windows gui suffers from terrible preformance until i get to disconnect 
the share from the samba server, then everything starts to work ok 
again. When I then try to "map network drive" again the connection fails 
with the informative message.

Since I'm used to being able to solve my problems by myself, I tried to 
debug the problems. First some reality check things:

- When I reboot the windows client into XP everything works without problems
- I can not detect any IP connectivity problems between the Windows 2000 
client and the samba server, i'm running ssh connections between the boxes.
- I have tried running samba on two different linux boxes with Red Hat 
7.3 (kernel 2.4.18-24.8.0) and Red Hat 8.1beta (kernel 2.4.20-2.21) 
respectively, both with the problem described above. (Exact samba 
versions: samba-2.2.7-1.7.3 and samba-2.2.7a-5.)
- I have also tried samba-3.0alpha2 with no luck
- I have tried with the ususal security = user, and with the samba 
server configured as PDC
- I have replaced the switch between the computers with an old 10 mbit/s 
hub, no change
- There are no firewall configurations or packet filters on the linux 
machines. AFAIK that's true for the Windows 2000 client also.

Now to the interesting part. When playing around with 'nbtstat' in 
Windows 2000, i found out that the windows computer fails to resolve the 
name of the samba server after it has locked up. After a couple of 
minutes, the name resolving starts working again. The network seems to 
be in two states, one broken (where windows can not find the share or 
transfer any data to my ogg player) and one working. The network alters 
between these two states every 15 minutes or so.

The minimal testcase that I use is to resolve the hostname of the samba 
server (ulysses) with the command 'nbtstat -a ulysses' in the Windows 
command line. When the network is in "working state", i get a copule of 
replies to that question in about 0.1 seconds. When the network is 
broken, I get "Host not found" after a short timeout (perhaps 3 seconds).

Looking at the network activity in ethereal when issuing the nbtstat 
command I find that in broken state the server doesn't answer to the 
"NBNS Name query NBSTAT ULYSSES<00>" packet. The client sends 3 packets 
to the server but none gets answered. Samba doesn't print a single line 
in the logfiles at log level = 10 as a response to the recieved packets 
on UDP/137.

This leaves me with two alternatives. 1) nmbd gets the packet but drops 
it for some reason, 2) the kernel doesn't deliver the packet to nmbd for 
some reason. The ethereal dumps makes it quite clear that UDP packets 
are sent by the client, transferred over the ethernet and recieved by 
the server. So, where do they go?

I hope that anyone can bring some light into this matter, or at least 
give me some input on where I can continue to look when debugging.

cheers
/noa



More information about the samba mailing list