From owner-freebsd-fs@FreeBSD.ORG Wed Oct 8 01:24:23 2014 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D527B901; Wed, 8 Oct 2014 01:24:23 +0000 (UTC) Received: from esa-annu.net.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 8B400DB8; Wed, 8 Oct 2014 01:24:23 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8EAEmRNFSDaFve/2dsb2JhbABfDoQrBIMA0HICgSMBe4QEAQEEIwRSGxgCAg0ZAlkGE4g+rQiVDwEXgSyOZDQHgneBVAWzSoMjXCEvgUiBAgEBAQ X-IronPort-AV: E=Sophos;i="5.04,674,1406606400"; d="scan'208";a="160057976" Received: from muskoka.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.222]) by esa-annu.net.uoguelph.ca with ESMTP; 07 Oct 2014 21:24:22 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 5CC31B4037; Tue, 7 Oct 2014 21:24:22 -0400 (EDT) Date: Tue, 7 Oct 2014 21:24:22 -0400 (EDT) From: Rick Macklem To: Garrett Wollman Message-ID: <1991198781.60122149.1412731462373.JavaMail.root@uoguelph.ca> In-Reply-To: <21556.28888.523838.856998@khavrinen.csail.mit.edu> Subject: Re: 9.3 NFS client bug? MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.201] X-Mailer: Zimbra 7.2.6_GA_2926 (ZimbraWebClient - FF3.0 (Win)/7.2.6_GA_2926) Cc: freebsd-fs@freebsd.org X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Oct 2014 01:24:23 -0000 Garrett Wollman wrote: > < said: > > > ps: I would like to hear what happens when you test against a UFS > > volume. > > We don't have any UFS volumes, and this 96-drive file server is not > likely ever to have any. > > FWIW, I now have a packet capture of the complete test, taken from > the > server side, if anyone wants to look at it in detail. > > The inner loop of the "sequential delete" benchmark looks like this > (slightly simplified): > > while(1) > { > file_ent = readdir(d); > if(file_ent == NULL) > break; > if(file_ent->d_name[0] != '.') > { > if(unlink(file_ent->d_name)) > { > fprintf(stderr, "Can't delete file %s\n", > file_ent->d_name); > return -1; > } > count++; > } > } > closedir(d); > > This makes me wonder if there isn't some issue with the NFS > VOP_READDIR losing its place in the presence of interleaved deletes. > fts(3) won't see this as it reads the whole directory at once (for > sorting, if requested) before invoking the callback on each entry. > Yep. As noted in the other reply, an unlink() inside a loop on readdir() has never worked for NFS on FreeBSD, as far as I know. It's related to the handling of directory offset cookies, but I can't remember all the details. rick > -GAWollman > >