Patch: Implement FSCTL_LMR_REQUEST_RESILIENCY

Michael Adam obnox at samba.org
Thu Oct 9 15:35:24 MDT 2014


On 2014-10-09 at 14:24 -0700, Jeremy Allison wrote:
> On Thu, Oct 09, 2014 at 11:18:47PM +0200, Michael Adam wrote:
> > 
> > In the new mode the process and the file handle simply does not
> > go away if the client is disconnected. The reconncted client's
> > tcp socket is passed to the smbd that still holds the file open.
> > 
> > > IMHO in our current architecture closing and
> > > re-opening would be a much easier first step.
> > 
> > Sure, bug my point was rather that we might benefit from
> > the infrastructure that we are currently building anyways
> > for Multi-Channel.
> 
> Sounds good to me. We're close to getting this
> working (once I've gotten Volker's leases code
> in 4.2.x I'll start working on it :-).

This part is already largely working, btw.
(See the master-multi-channel(-*) branches that
Metze and I ar ping-ponging in our private repos.)
I have a demo of multi-channel working, all
channels treated by one smbd. I presented it
in Redmond. I still need to record a desktop
session with that.

The tcp-session passing based on the GUID
is probably something that we might consider
polishing and pushing next in the process
of implementing multi channel. Fd-passing as
such is already upstream and so is the preparation
of the smbXsrv structures to handle multiple
transport connection in one process.

> > And remember that we have to give guarantees to the client.
> > We can of course count external access to disconnected
> > handles as force majeure, but if we close the handle, we
> > we not only don't have a means of preventing external
> > access, but we don't even have a definite means of noticing it.
> 
> True. But many of the advanced SMB3 features won't
> work with only underlying POSIX guarentees anyway,
> so we can just shove this one in the same bucket
> for now :-).

Right. And in principle the disconnected handle needs
to survive a restart of samba or a reboot of the server,
especially if it is a node in a cluster. At least for
persistent handles (if not for resilient ones).
And hence we also need to treat the case of a closed fd
anyways. Then we can as well start out with this.
For this we have the challenge of making the corresponding
database records persistent without killing performance
by making the whole database persistent.
This seems to be the harder part.

Cheers - Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20141009/28e55430/attachment.pgp>


More information about the samba-technical mailing list