From: Ian Campbell Subject: Re: RPC retransmission of write requests containing bogus data Date: Fri, 17 Oct 2008 14:33:50 +0100 Message-ID: <1224250430.9053.122.camel@zakaz.uk.xensource.com> References: <1224241273.9053.109.camel@zakaz.uk.xensource.com> <1224247725.7722.4.camel@localhost> <1224248469.9053.119.camel@zakaz.uk.xensource.com> <1224249772.7722.9.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain Cc: linux-nfs@vger.kernel.org, mchan-dY08KVG/lbpWk0Htik3J/w@public.gmane.org To: Trond Myklebust Return-path: Received: from smtp02.citrix.com ([66.165.176.63]:43036 "EHLO SMTP02.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754257AbYJQNd7 (ORCPT ); Fri, 17 Oct 2008 09:33:59 -0400 In-Reply-To: <1224249772.7722.9.camel@localhost> Sender: linux-nfs-owner@vger.kernel.org List-ID: On Fri, 2008-10-17 at 09:22 -0400, Trond Myklebust wrote: > On Fri, 2008-10-17 at 14:01 +0100, Ian Campbell wrote: > > On Fri, 2008-10-17 at 08:48 -0400, Trond Myklebust wrote: > > > I don't see how this could be an RPC bug. The networking layer is > > > supposed to either copy the data sent to the socket, or take a reference > > > to any pages that are pushed via the ->sendpage() abi. > > > > > > IOW: the pages are supposed to be still referenced by the networking > > > layer even if the NFS layer and page cache have dropped their > > > references. > > > > The pages are still referenced by the networking layer. The problem is > > that the userspace app has been told that the write has completed so it > > is free to write new data to those pages. > > > > Ian. > > OK, I see your point. > > Does this happen at all with NFSv4? I ask because the NFSv4 client will > always ensure that the TCP connection gets broken before a > retransmission. I wouldn't therefore expect any races between a reply to > the previous transmission and the new one... I believe we've only tested with NFSv3. Unfortunately I've just lent the box which reproduces this issue to a colleague for the rest of the day. I'll test with v4 next week. Ian.