How to avoid client timeout.(SMB2 ECHO Request)

Stefan (metze) Metzmacher metze at samba.org
Fri Feb 7 05:57:23 MST 2014


Am 07.02.2014 07:00, schrieb sandeep nag:
> http://msdn.microsoft.com/en-us/library/cc246540.aspx
> 
> There is write/truncate request from the client and processing in samba VFS
> plugin is taking longer time(which is expected as per our VFS plugin
> processing time).
> The client meanwhile sends many SMB ECHO requests
> (every 30 seconds (not sure)). However, they sit in the socket because the
> smbd
> is now stuck and will only process the ECHOs after the truncate. Because
> of this, I am seeing client time outs.
> 
> If the ECHO could be responded promptly, then the client would not time.
> How can this be done, please guide me in implementing/coding/undertanding
> this.

Which client sends SMB2 Echo requests? Can you provide a capture?
I thought Windows clients would rely on TCP keepalives for SMB2.

For SMB1 we have the "async smb echo handler" option. From man smb.conf:

       async smb echo handler (G)

           This parameter specifies whether Samba should fork the async
smb echo handler. It can be beneficial if your
           file system can block syscalls for a very long time. In some
circumstances, it prolongs the timeout that
           Windows uses to determine whether a connection is dead.

           Default: async smb echo handler = no

metze


More information about the samba-technical mailing list