All of lore.kernel.org
 help / color / mirror / Atom feed
* Interop Issue: SMB2+ async replies, and the kernel, Samba side fix enclosed.
@ 2016-02-23 12:55 Ira Cooper
       [not found] ` <CAAPGDwLnp90t7wiRb_tw-Md0jv-8w0Ye66jNcsRNioganVe2xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
       [not found] ` <CAKywueSMFrvreB8JMtwj8kt1BY1Yyq-Guy3Q3=wZFzuLCCOjZA@mail.gmail.com>
  0 siblings, 2 replies; 15+ messages in thread
From: Ira Cooper @ 2016-02-23 12:55 UTC (permalink / raw)
  To: Samba Technical, linux-cifs; +Cc: sfrench

[-- Attachment #1: Type: text/plain, Size: 1229 bytes --]

If the server sends an interim response, then the real response, the real
response, is handled by standard_receive3() in the kernel, instead of the
proper function, and this causes a disconnect.  If there isn't a
disconnect, I believe the reply will just be discarded if I understand the
code correctly.  (That is a big if here ;) )

I've written a patch for Samba to stop sending interim replies on SMB2_READ
and SMB2_WRITE, when non-compounded to stop the impact of this issue.  We
may want to add SMB2_CREATE to the list of ops we don't send async replies
for non-compounded, but I'm not sold either way, I know we CAN go async
there!  I want some opinions here.

This is not hidden behind a flag because compatibility issues that don't
impact protocol correctness usually aren't.

Setting req->async_te = talloc_new(NULL); is just ugly, though it works.
If you have a cleaner approach, I welcome it.

I request you please ASK me before pushing this one, yes, that means you
jra!

For those interested in reproduction: I'd suggest using a server that's
rebuilt with a lower timeout set in smb2_read.c, though we've hit it with
vfs_glusterfs straight up, in our testing.

Thanks,

-Ira / ira@(samba.org|redhat.com|wakeful.net)

[-- Attachment #2: 0001-smbd-Work-around-for-AIO-with-the-Linux-CIFS-client-.patch --]
[-- Type: application/mbox, Size: 1808 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-03-01 20:10 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-23 12:55 Interop Issue: SMB2+ async replies, and the kernel, Samba side fix enclosed Ira Cooper
     [not found] ` <CAAPGDwLnp90t7wiRb_tw-Md0jv-8w0Ye66jNcsRNioganVe2xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-23 13:05   ` Stefan Metzmacher
     [not found]     ` <1D07D524-6243-4DF5-BBEB-13EE3A2B62AE@samba.org>
2016-02-24  4:41       ` Ira Cooper
     [not found]         ` <CAAPGDwL-VsVmPzFFEM5nOAgFCz68a2KHWGAy9KH6ED5PD0vx_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-24 19:04           ` Jeremy Allison
2016-03-01 13:40             ` Volker Lendecke
     [not found]               ` <20160301134039.GA21826-3ekOc4rQMZmzQB+pC5nmwQ@public.gmane.org>
2016-03-01 20:10                 ` Christian Ambach
2016-02-23 14:28   ` Shirish Pargaonkar
2016-02-23 16:54   ` Jeremy Allison
     [not found] ` <CAKywueSMFrvreB8JMtwj8kt1BY1Yyq-Guy3Q3=wZFzuLCCOjZA@mail.gmail.com>
2016-02-27  9:17   ` Pavel Shilovsky
     [not found]   ` <CAKywueSMFrvreB8JMtwj8kt1BY1Yyq-Guy3Q3=wZFzuLCCOjZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-27  9:26     ` Pavel Shilovsky
2016-02-27  9:31     ` Pavel Shilovsky
     [not found]       ` <CAKywueRePEMq7d2bYDZN48_esZrx0P2FofrDDxJ62RtQtX1Xww-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-27 13:50         ` Shirish Pargaonkar
     [not found]           ` <CADT32eLG7aNKGqprQPwJdxdDyw__c39sUgX7vdkg=hNNtV63QQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-28  6:22             ` Pavel Shilovsky
2016-02-29  4:15               ` Steve French
     [not found]               ` <CAKywueRcieBmFFjBxzGqQupG1T1Y9aj-viO6q15Dv2w6fHETfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-29  4:17                 ` Steve French

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.