Subject: Re: bug#8850: mkdir inside symlink creates wrong directory with relative parent

From: Jim Meyering <[email-masked]>
Date: Mon, 13 Jun 2011 16:55:32 +0200

Oldřich Jedlička wrote:
> I was trying to search for any description helping me understand in
> what I see, but actually I didn't find any, so I'm here. I discovered
> it by using automake-1.11, because it uses relative paths a lot. So my
> simplified testcase is as follows:
>
> Have a directory structure x/y and x/z/a. Have a symbolic link from
> x/y/z that points to x/z.
>
>  mkdir -p x/y
>  mkdir -p x/z/a
>  ln -s ../z x/y/z
>
> Now go into x/y/z/a and try to create directory like that:
>
>  cd x/y/z/a
>  mkdir ../dir_xyz
>  mkdir ../../dir_xy
>  mkdir ../../../dir_x
>
> I would expet that there would be a directory like this:
>
>  x/dir_x
>  x/y/dir_xy
>  x/y/z/dir_xyz (x/z/dir_xyz)
>
> But the result is completely different:
>
>  dir_x
>  x/dir_xy
>  x/y/z/dir_xyz (x/z/dir_xyz)
>
> So when you want to create a directory in the parent structure from
> within the symbolic link, you will fail in doing so, because the
> symbolic link would be resolved during walking through parents, so you
> can get to completely different tree while creating your directory. It
> looks like a bug, because it is nowhere documented to behave like that
> (and the behaviour is strange by itself).
>
> Verified on Debian 4.0/RedHat 5.4 with coreutils 5.97 and on Gentoo
> with coreutils 8.12.

Loic explained that this is not a bug. (Thanks, Loic.)
I'm marking this issue as closed.