Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Oct 2014 19:01:44 -0400
From:      Garrett Wollman <wollman@csail.mit.edu>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: 9.3 NFS client bug?
Message-ID:  <21556.28888.523838.856998@khavrinen.csail.mit.edu>
In-Reply-To: <654363730.60050348.1412720184948.JavaMail.root@uoguelph.ca>
References:  <21556.24590.269326.188103@khavrinen.csail.mit.edu> <654363730.60050348.1412720184948.JavaMail.root@uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
<<On Tue, 7 Oct 2014 18:16:24 -0400 (EDT), Rick Macklem <rmacklem@uoguelph.ca> 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.

-GAWollman




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?21556.28888.523838.856998>