All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ira Cooper <ira@wakeful.net>
To: Steven French <sfrench@samba.org>
Cc: Stefan Metzmacher <metze@samba.org>,
	linux-cifs@vger.kernel.org,
	Samba Technical <samba-technical@lists.samba.org>
Subject: Re: Interop Issue: SMB2+ async replies, and the kernel, Samba side fix enclosed.
Date: Tue, 23 Feb 2016 23:41:34 -0500	[thread overview]
Message-ID: <CAAPGDwL-VsVmPzFFEM5nOAgFCz68a2KHWGAy9KH6ED5PD0vx_Q@mail.gmail.com> (raw)
In-Reply-To: <1D07D524-6243-4DF5-BBEB-13EE3A2B62AE@samba.org>

You'll find it easy to reproduce if you:

Set  aio read size = 1 in smb.conf.

And modify line 101 in smb2_read.c or close by to be:

    return smbd_smb2_request_pending_queue(req, subreq, 1);

Writing a 1 GB file, umounting the share, and mounting the share again,
then using dd to read it back with rsize and wsize set to 1MB, should do it.

We can reproduce it as is with Gluster, I suspect that may be enough to do
it with XFS or other filesystems.

Does anyone know what the windows timeout for sending the interim reply
is?  Barring this bug, sending it when we don't have to is wasteful.

Thanks,

-Ira

On Tue, Feb 23, 2016 at 11:11 PM, Steven French <sfrench@samba.org> wrote:

> Do we have a reproduction scenario?  I don’t remember this one and it
> doesn’t send familiar at all - I use smb3 kernel client to Samba every day.
>
> And yes - if we have a bug in the kernel client here let’s fix it.
>
>
>
> On Feb 23, 2016, at 7:05 AM, Stefan Metzmacher <metze@samba.org> wrote:
>
> Hi Ira,
>
> 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.
>
>
> Fix the broken kernel client!
>
> I think this is nothing we should work around in the server.
> The situation might be different if Windows clients would be unhappy,
> but the linux client is more or less under our control and can be fixed.
>
> People hitting this can just use SMB1 until it's fixed.
>
> metze
>
>
>

  parent reply	other threads:[~2016-02-24  4:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
     [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=CAAPGDwL-VsVmPzFFEM5nOAgFCz68a2KHWGAy9KH6ED5PD0vx_Q@mail.gmail.com \
    --to=ira@wakeful.net \
    --cc=linux-cifs@vger.kernel.org \
    --cc=metze@samba.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.