All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ira Cooper <ira@wakeful.net>
To: Samba Technical <samba-technical@lists.samba.org>,
	linux-cifs@vger.kernel.org
Cc: sfrench <sfrench@samba.org>
Subject: Interop Issue: SMB2+ async replies, and the kernel, Samba side fix enclosed.
Date: Tue, 23 Feb 2016 07:55:59 -0500	[thread overview]
Message-ID: <CAAPGDwLnp90t7wiRb_tw-Md0jv-8w0Ye66jNcsRNioganVe2xg@mail.gmail.com> (raw)

[-- 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 --]

             reply	other threads:[~2016-02-23 12:55 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23 12:55 Ira Cooper [this message]
     [not found] ` <CAAPGDwLnp90t7wiRb_tw-Md0jv-8w0Ye66jNcsRNioganVe2xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-23 13:05   ` Interop Issue: SMB2+ async replies, and the kernel, Samba side fix enclosed 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAAPGDwLnp90t7wiRb_tw-Md0jv-8w0Ye66jNcsRNioganVe2xg@mail.gmail.com \
    --to=ira@wakeful.net \
    --cc=linux-cifs@vger.kernel.org \
    --cc=samba-technical@lists.samba.org \
    --cc=sfrench@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.