> 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