fix(mkdir): mitigate directory creation race condition (#1019)

This commit is contained in:
Roy Ivy III 2021-03-08 12:12:32 -06:00 committed by GitHub
parent cb64b92439
commit 71085dba65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,17 +19,18 @@ function mkdirSyncRecursive(dir) {
common.error('dirname() failed: [' + dir + ']');
}
// Base dir exists, no recursion necessary
if (fs.existsSync(baseDir)) {
fs.mkdirSync(dir, parseInt('0777', 8));
return;
// Base dir does not exist, go recursive
if (!fs.existsSync(baseDir)) {
mkdirSyncRecursive(baseDir);
}
// Base dir does not exist, go recursive
mkdirSyncRecursive(baseDir);
// Base dir created, can create dir
fs.mkdirSync(dir, parseInt('0777', 8));
try {
// Base dir created, can create dir
fs.mkdirSync(dir, parseInt('0777', 8));
} catch (e) {
// swallow error if dir already exists
if (e.code !== 'EEXIST' || common.statNoFollowLinks(dir).isFile()) { throw e; }
}
}
//@