Go to file
George Kalpakas 8017229292 fix(ngcc): do not fail when multiple workers try to create the same directory ()
When `ngcc` is running in parallel mode (usually when run from the
command line) and the `createNewEntryPointFormats` option is set to true
(e.g. via the `--create-ivy-entry-points` command line option), it can
happen that two workers end up trying to create the same directory at
the same time. This can lead to a race condition, where both check for
the directory existence, see that the directory does not exist and both
try to create it, with the second failing due the directory's having
already been created by the first one. Note that this only affects
directories and not files, because `ngcc` tasks operate on different
sets of files.

This commit avoids this race condition by allowing `FileSystem`'s
`ensureDir()` method to not fail if one of the directories it is trying
to create already exists (and is indeed a directory). This is fine for
the `ensureDir()` method, since it's purpose is to ensure that the
specified directory exists. So, even if the `mkdir()` call failed
(because the directory exists), `ensureDir()` has still completed its
mission.

Related discussion: https://github.com/angular/angular/pull/33049#issuecomment-540485703
FW-1635 #resolve

PR Close 
2019-10-21 11:26:57 -04:00
.circleci feat: typescript 3.6 support () 2019-10-18 13:15:16 -04:00
.devcontainer build: add recommended config files for VSCode remote development () 2019-05-20 10:13:53 -07:00
.github docs: add localize migration doc () 2019-10-18 16:30:39 -04:00
.vscode build: add recommended config files for VSCode remote development () 2019-05-20 10:13:53 -07:00
aio docs: update universal docs for new ivy implementation () 2019-10-21 11:25:44 -04:00
docs docs: correct vscode clang-format setup instructions () 2019-10-17 14:17:55 -04:00
integration test: use @types/node compatible with TS 3.6 () 2019-10-18 13:15:17 -04:00
modules test: clean up explicit dynamic query usages () 2019-10-17 16:10:10 -04:00
packages fix(ngcc): do not fail when multiple workers try to create the same directory () 2019-10-21 11:26:57 -04:00
scripts ci: log calculated file sizes for each build () 2019-10-15 16:48:29 +00:00
third_party build: bump yarn requirement to 1.17.3 () 2019-08-28 17:13:05 -07:00
tools refactor(core): deprecate entryComponents () 2019-10-18 16:29:23 -04:00
.bazelignore build: update to rules_nodejs 0.32.2 () 2019-07-01 14:16:42 -07:00
.bazelrc build: set up remote http caching flag () 2019-10-10 13:57:53 -07:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig () 2018-12-18 09:30:09 -08:00
.gitattributes test: fix ts api guardian and public guard tests on windows () 2019-04-26 16:32:22 -07:00
.gitignore test: Add script which allows running all of the profiling tests and compare results () 2019-10-16 10:22:30 -04:00
.mailmap build: add a Git .mailmap with my new name () 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version () 2018-09-18 13:11:58 -07:00
BUILD.bazel build: update to rules_nodejs 0.32.2 () 2019-07-01 14:16:42 -07:00
CHANGELOG.md release: cut the v9.0.0-next.12 release 2019-10-18 13:04:25 -07:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: add missing parenthesis () 2019-10-07 11:02:33 -07:00
LICENSE build: bump year () 2019-01-11 11:15:59 -08:00
README.md docs: fix typo of Typescript to TypeScript () 2019-08-15 12:44:41 -07:00
WORKSPACE build: update to nodejs rules 0.38.3 () 2019-10-14 20:25:57 +00:00
browser-providers.conf.js ci: re-enable chrome mobile tests on android () 2019-09-03 11:58:30 -07:00
gulpfile.js build(zone.js): add changelog gulptask for zone.js () 2019-07-26 11:30:08 -07:00
karma-js.conf.js feat(ivy): support ng-add in localize package () 2019-09-27 13:15:02 -07:00
package.json release: cut the v9.0.0-next.12 release 2019-10-18 13:04:25 -07:00
protractor-perf.conf.js fixup! test(ivy): make the test run with benchpress () 2019-05-16 20:04:04 -07:00
renovate.json ci: update packageFiles to be renovated () 2019-03-05 09:43:23 -08:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files ()" 2016-10-04 14:06:41 -07:00
test-events.js refactor: rename unpatched event flag in Zone from `BLACK_LISTED_EVENTS` to `UNPATCHED_EVENTS` () 2019-10-04 08:44:58 -07:00
test-main.js feat(ivy): i18n - implement compile-time inlining () 2019-10-09 13:19:38 -07:00
tslint.json style: enforce disallowance of String, Number and Boolean constructors () 2019-10-17 14:12:00 -04:00
yarn.lock test: use @types/node compatible with TS 3.6 () 2019-10-18 13:15:17 -04:00
yarn.lock.readme.md build: remove travisci leftovers () 2019-01-09 10:41:16 -08:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.