dead records in locking.tdb (was: Locking database cleanup?)

Daniel Coletti dcoletti at xtech.com.ar
Fri May 19 01:22:50 GMT 2006


Hi,
	I'm having a problem that's been addressed (last month) in this
list[0], since I read the post from the list's archives I can't reply
this particular email, so excuse me for breaking the thread.

[0] http://lists.samba.org/archive/samba-technical/2006-April/046346.html

In this discussion -about dead records in the locking.tdb file- Jeremy
kindly responded ...
``As part of the validation
process when reading a record containing open and locking info,
we validate the pid associated with that record by sending it
a zero signal. If we get an ESRCH (no such process) error back
we delete the record.

So long as pid's don't wrap this should be robust.
´´
Now, I'm running samba 3.0.14a-3sarge, and using samba as a file server
for different version of Ms Windows executing a FOXPRO legacy
application (the smb.conf is down below).
If I execute a FOX rlock() to get a lock of a specific record in a DBF
file, I can see that the locking record gets added correctly in the
locking.tdb file. While having this record locked I hard reseted the
Windows PC.
What I see next is that the smbd instance lives for a few seconds and as
the Windows PC comes back on, this particular smbd instance dies but the
record in the locking.tdb file still exists ... avoiding the same or any
new Windows PC to get a lock of this DBF.
My questions are:
	1- Is this validation process that Jeremy mentioned has been added (or
fixed) in a later samba release from 3.0.14a-3?
	2- Is there any way to delete the locking.tdb record from file using
tdbtool? Would release the non-existing lock? (eventhough I see a
"delete" action in the tdbtool help I can't establish the correct key of
this record using tdbdump)

My problem is that I can't afford restarting samba, which cleans the
locking.tdb dead record.

Thanks a lot!

my smb.conf file:
[global]
        workgroup = XTECH
        realm = XTECH.LOCAL
        security = ADS
        auth methods = winbind
        password server = tcwad01.XTECH.local
        idmap uid = 1000-30000
        idmap gid = 1000-30000
        template homedir = /vhome/%D/%U
        template shell = /bin/bash
        winbind separator = +
        winbind use default domain = Yes
        winbind enum users = no
        lock spin time = 30
        lock spin count = 200
        smb ports = 139
        socket options = TCP_NODELAY SO_SNDBUF=65536 SO_RCVBUF=65536
IPTOS_LOWDELAY

[datosf]
        oplocks = no
        level2 oplocks = no
        inherit permissions = Yes
        writable = yes
        delete readonly = yes
        path = /home/datosf
        force directory mode = 0777
        veto oplock files =
/*.dbf/*.DBF/*.cdx/*.CDX/*.db/*.DB/*.lck/*.LCK/*.EXE/*.exe/*.fxp/*.FXP/*.idx/*.IDX/
        force create mode = 0777
        comment = tmp Datos F
        create mode = 0777
        level2 oplocks = No
        directory mode = 0777

daniel//
-- 
Daniel Coletti
XTech (Soluciones Linux para Empresas) - http://www.xtech.com.ar
25 de Mayo 293 - 5to. 'B'
Buenos Aires, Argentina


More information about the samba-technical mailing list