[Samba] Re: Samba and the InterWeb

Scott Lovenberg scott.lovenberg at gmail.com
Fri Feb 15 00:32:49 GMT 2008


Alex Hooper wrote:
> Scott Lovenberg uttered:
>> Alex Hooper wrote:
>>> Scott Lovenberg uttered:
>>>> Alex Hooper wrote:
>>>>> Hi,
>>>>>
>>>>> We have an office-based Windows-locked publishing system whose only 
>>>>> delivery mechanism is to write to a local filesystem, and a 
>>>>> requirement for its output to be available to a collocated 
>>>>> production environment comprising Solaris and Linux boxes. The 
>>>>> 'obvious' solution was to run a Samba server on one of the 
>>>>> collocated Linux boxes and mount the share it provides on the 
>>>>> relevant Windows machines in the office. And this is what I have 
>>>>> done. This works, but encounters the problem I am about to describe.
>>>>>
>>>>> SCENARIO ONE:
>>>>>
>>>>> Connecting to the server/share in Explorer (Windows XP) by typing 
>>>>> the path (\\dns.host.name\share) into the address bar is 
>>>>> accomplished without problem, as is receiving a directory listing. 
>>>>> But uploading a file to the remote share (by drag and dropping) 
>>>>> causes Explorer to freeze for anything between 10 and 30 seconds 
>>>>> after which the file transfers at good speed.
>>>>>
>>>>> SCENARIO TWO:
>>>>>
>>>>> Map the remote share, using same connection details. Now copy is 
>>>>> often fine, but sometimes will just fail with a "Cannot copy
>>>>> <filename>: The specified network name is no longer available." and 
>>>>> leave a zero-length file at the remote end.
>>>>>
>>>>> Not infrequently, smbd processes are being left in an 
>>>>> 'uninterruptible sleep' state.
>>>>>
>>>>> If I mount the remote share via smbmount onto a Linux server in the 
>>>>> office, I don't encounter any of these problems.
>>>>>
>>>>> Packet-sniffing on scenario one shows that the pause is happening 
>>>>> before  any set-up for the file transfer: it looks like the client 
>>>>> disconnects, then there's a pause, then it reconnects.
>>>>>
>>>>> I'm using Samba version 3.0.25b-1.el4_6.4 on RHEL ES release 4. 
>>>>> Clients are Windows XP Pro. Our office has a fairly large and 
>>>>> complex LAN which is managed by a separate department. Access to 
>>>>> the Internet is, not surprisingly, via a NATting gateway. 
>>>>> Appropriate ports have been opened in the firewalls, though all 
>>>>> communication is in Direct-hosted mode (ie, I only see traffic on 
>>>>> port 445/tcp).
>>>>>
>>>>> smb.conf looks like this:
>>>>>
>>>>> [global]
>>>>>
>>>>>         workgroup = WG123
>>>>>         netbios name = n2323  # hostname of server
>>>>>         server string = FOO-BAR-Samba
>>>>>
>>>>>         #wins proxy = yes
>>>>>         #wins server = xxx.xx.xx.x
>>>>>
>>>>>         security = user
>>>>>         passdb backend = tdbsam
>>>>>
>>>>>         load printers = no
>>>>>
>>>>>         # idle time (mins) before client is disconnected
>>>>>         dead time = 15
>>>>>         keepalive = 10
>>>>>         socket options = IPTOS_THROUGHPUT SO_SNDBUF=8576
>>>>>         inherit permissions = yes
>>>>>
>>>>> [test-xml]
>>>>>         path = /stuff/test-xml
>>>>>         writeable = Yes
>>>>>         public = no
>>>>>
>>>>> Could anyone suggest what might be going on here?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Alex.
>>>> On scenario1, is it (Windows client) trying to connect to port 445 
>>>> on the server, being dropped instead of rejected, timing out, and 
>>>> then establishing a connection on port 139?  I think by default 
>>>> Windows tries to connect to both at the same time or something weird 
>>>> like that.
>>>>
>>>
>>> No. There is no attempt to use port 139: only 445 is approached.
>>>
>>>>
>>>> On scenario2, I've seen behavior something akin to this on a 
>>>> corrupted e1000 kernel module.  I've also seen bad cables (twice 
>>>> where gigabit and mii are concerned, IIRC) that behave all kinds of 
>>>> weird, at any given moment.
>>>>
>>>
>>> The server's using the bnx2 module and the NIC is at 100MB FD. I'm 
>>> not noting any other network weirdness, which would seem to suggest 
>>> cabling is probably OK, wouldn't it?
>>>
>>  I once heard a quote (which I'd like to attribute to Jeremy Allison 
>> for some reason) to the effect of "The Windows SMB network stack is 
>> like a canary in a coal mine, when you have network troubles it's the 
>> first thing to die."  I could get everything else to work just fine 
>> with this driver, but SMB/CIFS just kept flaking out.  So, I always 
>> try to trace a problem starting from the wall back.
>>
>>>> Anyways, FWIW, how does your 'netstat -s' output look?  Are you 
>>>> getting a considerable number of connection resets being sent or 
>>>> received?
>>>>
>>>
>>> No. All the "reset sent"s in the diff below belong to an unrelated 
>>> application. In the time between the two netstats compared below, 
>>> various stalling transfers were made and one "network name is no 
>>> longer available" was received:
>>>
>>> # diff -Bub /root/netstat-20080213-0939 /root/netstat-20080213-1016
>>> --- /root/netstat-20080213-0939 2008-02-13 09:39:24.000000000 +0000
>>> +++ /root/netstat-20080213-1016 2008-02-13 10:16:34.000000000 +0000
>>> @@ -1,43 +1,44 @@
>>>  Ip:
>>> -    4336 total packets received
>>> +    21933 total packets received
>>>      0 forwarded
>>>      0 incoming packets discarded
>>> -    4335 incoming packets delivered
>>> -    4134 requests sent out
>>> +    20292 incoming packets delivered
>>> +    19069 requests sent out
>>>  Icmp:
>>> -    26 ICMP messages received
>>> +    92 ICMP messages received
>>>      0 input ICMP message failed.
>>>      ICMP input histogram:
>>> -        echo requests: 26
>>> -    26 ICMP messages sent
>>> +        echo requests: 92
>>> +    92 ICMP messages sent
>>>      0 ICMP messages failed
>>>      ICMP output histogram:
>>> -        echo replies: 26
>>> +        echo replies: 92
>>>  Tcp:
>>> -    6 active connections openings
>>> -    161 passive connection openings
>>> +    11 active connections openings
>>> +    169 passive connection openings
>>>      0 failed connection attempts
>>> -    0 connection resets received
>>> -    93 connections established
>>> -    4176 segments received
>>> -    3992 segments send out
>>> +    1 connection resets received
>>
>> Hrm... the client reset.  Do you have a wire sniff to see what is 
>> going on right before the client sends a reset?
>>
> Hi,
> 
> I've put one at 
> http://www.oops.org.uk/misc/transfer-file-20080213-reset02.pcap
> 
> I'm unable to extract useful clue from it, though brain fog is building 
> up here. I'm starting to consider publishing to an internal machine and 
> syncing with SCP or rsync. Feels hacky, though.
> 
> Cheers,

OK, it looks like you're choking on an enumeration for your subversion 
directory right before the first session close.  Have you turned off 
"hide dot files", which is on by default?

As far as rsync goes, it can be hacky, depending on how you do it. 
Personally, I have a script that mounts another computers administrative 
  C$ share (as a domain admin - use a password file or it'll show up in 
top!).  It works just fine, although not the most elegant way to do 
things... but that's why we're geeks, getting things done trumps 
elegance every day of the week.  You'll have problems with open files 
though, unless you do an LVM snapshot or something.  The nice thing 
about it though is that you can save permissions with rsync, and you do 
have hardlinking, client/server abilities, and stunnel support.  Amanda 
or Bacula may be more elegant, but the setup overhead to have the same 
functionality that an easily modifiable shell script gives you, makes it 
a zero sum game in the short term.  Just my $0.02.


More information about the samba mailing list