[Samba] smb keeps stale connections from logged out users and
shut down clients
Vlastimil Šetka
setka at spsostrov.cz
Mon Feb 9 15:09:51 GMT 2009
Volker Lendecke wrote:
> On Mon, Feb 09, 2009 at 03:17:27PM +0100, Frederik wrote:
>> We are using Samba 3.0.33 as a PDC and file server for Windows XP
>> clients, but seem to be suffering lots of stale connections. smbstatus
>> still shows connections from users already logged out and even from
>> systems which have already been shut down.
>>
>> Restarting the samba service, cleans up all stale connections.
>>
>> We tried deadtime = 5 in the samba configuration file, but this does
>> not help at all.
>
> The parameter "keepalive" doesn't help either?
>
> Volker
We have similar problems with Samba 3.0.24 (Debian Etch) as PDC for ~120
Win XP clients.
See also this thread refering about our problems:
http://lists.samba.org/archive/samba/2008-September/143701.html
Since that time I made some investigations with interesting results.
About once per month it's a locking issue and the smbd proccess exists.
It is
not a big problem. After Samba restart all is OK.
But other problem come up when logging smbstatus output every 10 seconds
for audit purpose.
Wery often smbstatus shows a connected user from computer which have
already been shut down
or from computer where other user is loged in (see referred thread).
This connections is showed usually for ~30 seconds and then disappear. I
modified my logging
script: it also logs the proccess name of each PID in smbstatus. I found
that PIDs of the
"ghost" connections is not the smbd! It's cron tasks, apache cgi scrips,
... !
I patched smbstatus: normally it loads the sessionid.tdb database and
checks if PID of
proccess in database exists. In my modification it also shows records
with PIDs that
do not exist.
After a day after the Samba restart and ~400 domain logon/logoff there
is about ~15
records with bad PID in the sessionid.tdb - with normal smbstatus this
records are not
showed - only if the process with the PID coincidentally exists...
I think that Samba should have some self-healing mechanisms with
sessionid.tdb. I can imagine
some garbage collector periodically checking existence of PIDs for all
records in sessionid.tdb
and if such PID does not exists it should delete the record.
Have Samba such feature in newer versions, or is it other error?
Thanks.
Vlastimil Setka
More information about the samba
mailing list