Inconsistent/potentially incorrect behavior with relative lookups via chdir(2) on UFS/ZFS

Garrett Cooper yanegomi at gmail.com
Sat Nov 3 20:56:06 UTC 2012


On Sat, Nov 3, 2012 at 3:38 AM, Peter Jeremy <peter at rulingia.com> wrote:

> On 2012-Nov-01 15:25:05 -0700, Garrett Cooper <yanegomi at gmail.com> wrote:
> >    Just doing some interop testing on UFS/ZFS to develop a baseline for
> >filesystem behavior, and I noticed some inconsistencies with the ENOENT
> >requirement in chdir(2) when dealing with relative ".." paths (dot-dot
> >lookups). In particular...
> >    1. I would have expected chdir('.') to have failed in UFS/ZFS with
> >ENOENT if '.' wasn't present, but it didn't.
> >    2. I would have expected chdir('..') to have failed in ZFS with ENOENT
> >if '..' wasn't present, but it didn't.
> >    Sidenote: python doesn't do any special handling with os.chdir, per
> >Modules/posixmodule.c (I checked).
> >    The full test I ran is included below.
>
> Whilst playing with the above, I've found some wierd timing issues
> with UFS+SU:
>
> $ mkdir -p ~/p/q/r;sync
> $ cd p/q/r
> $ rm -r ~/p; while date; do sleep 3 ; ls -al;done
> Sat  3 Nov 2012 21:29:19 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:22 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:25 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:28 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:31 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:34 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:37 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:40 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:43 EST
> total 2
> drwxr-xr-x  0 peter  jeremy  512  3 Nov 21:28 .
> drwxr-xr-x  0 peter  jeremy    0  3 Nov 21:29 ..
> Sat  3 Nov 2012 21:29:46 EST
> total 0
> Sat  3 Nov 2012 21:29:49 EST
>

    Interesting; with SU-J or SUJ (my testing was with the default: SUJ)?
Thanks!
-Garrett


More information about the freebsd-fs mailing list