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


Eric Blake wrote:
-----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.

Oops, after closer inspection, the problem was with my makefile. *sigh*



-- 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]