Samba 2.0.6 fix causing problems

Marc Jacobsen Marc_Jacobsen at
Fri Jan 7 15:55:50 GMT 2000


I found that a change from Samba 2.0.5a to 2.0.6 is causing problems on our
Samba servers.  The change was in source/smbd/server.c, starting at line 721 in
the 2.0.6 version.  Basically, the order of the calls to locking_init() and
open_sockets() got switched.

The open_sockets() call is where the parent smbd apparently forks off the child
smbd's for each connection.  In 2.0.5a, locking_init() came second, so every
child smbd process called it, but in 2.0.6 locking_init() comes first, so only
the parent smbd process calls it.

The locking_init() function eventually calls smb_shm_register_process().  On
both 2.0.5a and 2.0.6, when a connection is closed smb_shm_unregister_process()
gets called by the child smbd process.  For 2.0.5a this is fine, each child smbd
process calls smb_shm_register_process() and then later
smb_shm_unregister_process().  But with 2.0.6, only the parent smbd process
calls smb_shm_register_process() and every child process calls
smb_shm_unregister_process() resulting in an error message like this in the log

log.client:  ERROR smb_shm_unregister_process : couldn't find pid 1282 in file

I imagine that since none of the child smbd processes is properly locking shared
memory this error message is the least of our worries.

I know there must be some reason that the order of locking_init() and
open_sockets() was switched, but I can't figure it out.  I looked through the
list of fixes in 2.0.6 in the WHATSNEW file, but didn't find any obvious

I don't want to break anything by switching this back, so could someone please
tell me why this change was made?

Marc Jacobsen

P.S.  Please respond through email as well as posting to the list, I am not
subscribed.  Thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Marc_Jacobsen.vcf
Type: text/x-vcard
Size: 309 bytes
Desc: Card for Marc Jacobsen
Url :

More information about the samba-technical mailing list