Re: [PATCH] SUNRPC: Fix another issue with MIC buffer space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Nov 15, 2019, at 9:51 AM, Benjamin Coddington <bcodding@xxxxxxxxxx> wrote:
> 
> On 15 Nov 2019, at 9:44, Chuck Lever wrote:
> 
>>> On Nov 15, 2019, at 9:41 AM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote:
>>> 
>>> 
>>> 
>>>> On Nov 15, 2019, at 9:35 AM, Benjamin Coddington <bcodding@xxxxxxxxxx> wrote:
>>>> 
>>>> On 15 Nov 2019, at 8:39, Chuck Lever wrote:
>>>> 
>>>>> xdr_shrink_pagelen() BUG's when @len is larger than buf->page_len.
>>>>> This can happen when xdr_buf_read_mic() is given an xdr_buf with
>>>>> a small page array (like, only a few bytes).
>>>> 
>>>> Hi Chuck,
>>>> 
>>>> Seems like a bug in xdr_buf_read_mic to me, but I'm not seeing how this can
>>>> happen.. unless perhaps xdr->page_len is 0?  Or maybe xdr_shift_buf has bug?
>>> 
>>> rpc_prepare_reply_pages() sets buf->page_len to the args->count of the
>>> NFS READ request. For really small READs, this can be 2, or 12, or
>>> anything smaller than the MIC length.
>>> 
>>> 
>>>> I'd prefer to keep the BUG_ON.
>>> 
>>> Linus would prefer not to. :-)
> 
> Ahh..
> 
>>> 
>>> 
>>>> How can I reproduce it?
>>> 
>>> I've been using the git regression suite with NFSv4.1 and krb5i.
>>> I run it with 12 threads.
>> 
>> And I enable disconnect injection. Yer basic torture test.
> 
> Thanks.. I'll try.

I'm not sure why the issue doesn't show up without disconnect injection.
Could be that a few of the READs fail, and thus return no data?


--
Chuck Lever







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux