This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: coreutils 5.97; mkdir -p; mkdir: cannot create directory `name': File exists


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

From: Rolf Campbell
> I believe there is a race-condition in "mkdir -p".  Specifically, if the
> directory does not exist *yet* when stat is called on line #98 of
> "coreutils-5.97/lib/mkdir-p.c", but the directory *does* exist by the
> time line #190 of the same file calls mkdir(), then the program will
> error with "File exists".
> 
> I hit this occasionally when doing parallel builds.

Are you sure you have the right line numbers?  The cygwin version of
lib/mkdir-p.c is patched in coreutils-5.97-1; but even the upstream
version takes great pains that this is not a race - yes, the directory can
be created between the time it is statted and the mkdir, but the mkdir
takes this into account by trying to chdir into the directory on failure,
before giving up with an error message to the user that the file exists.

I will need a stronger argument to believe that there is a race, in which
case, the upstream maintainers would probably like to hear it too.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@byu.net
volunteer cygwin coreutils maintainer
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFE61HV84KuGfSFAYARAiB+AJ44hlkTkvIbrXQhqB9/E8HaF7neMwCfeke/
491C9NVNTutnL4Ds1pVXygs=
=Fdu4
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]