Locking database cleanup?

Dhruva Krishnamurthy dhruvakm at gmail.com
Wed Apr 5 07:07:43 GMT 2006


Hello,
 I was considering the similar problem. A solution proposal:

The advantage we have is that we have a SMBD daemon process running.

The main daemon process can have signal handlers for SIGCHLD for SMBD
child prcesses that it forks. When a child SMBD process
terminates/exits, the parent can trigger a cleanup. The cleanup can be
implemented either as a seperate executable or a thread. To avoid the
cleanup routine from getting called for all child processes (on their
exit), some IPC between child & parent could be established to inform
the parent (daemon) when child exits normally.

Having an external tool to cleanup may not be such a good idea.
Depending on PID to identify the cleanup in the TDB may fail if the OS
assigns a recently terminated PID to the new process. When the tool
runs, it will find there is a valid process with this PID and skip the
cleanup. The probability of ths occurance might be real remote!

with best regards,
dhruva

On 4/5/06, Alexey Lobanov <A.Lobanov at cro-rct.ru> wrote:
> Hello all.
>
> A quite simple sutuation. One SMBD servicing one user said "segfault"
> (e.g., because of CUPS interaction problem) and died. Yes, we are in
> Brave Robust Unix World, and one daemon death does not affect other
> daemons and remote clients. But... the locking database still contains
> records related to this non-existent PID, and any new attempts to use
> same files fail. The affected share becomes completely unusable until we
> restart the *whole* Samba subsystem, killing open files of all the other
> innocent clients. Welcome back to the monolythic server.
>
> Is this behavior normal for Samba 2 and 3 architecture? Or I do not
> understand something?
>
> I suspect that "locking.tdb" file contents is secondary thing in this
> case. The primary reason is located in the shared memory machinery. Correct?
>
> And the practical solution could be a tool cleaning locking tables from
> records related to non-existent PIDs...
>
> Alexey
>


--
Dhruva Krishnamurthy
GNU/FSF member: 1935


More information about the samba-technical mailing list